Ada kerja batch di luar sana. Dan terdapat beberapa pelayan yang boleh mengendalikan kerja. Saya hanya mahu kerja itu diambil dan diproses oleh salah satu daripada banyak pelayan pada masa tertentu.
Untuk mencapai tujuan ini, semasa menyiasat mekanisme kunci global, saya menemui fungsi get_lock mysql.
Selain itu, kerana ia sudah bergantung pada mysql, saya rasa fungsi ini boleh digunakan.
Namun, perkara yang membuatkan orang curiga ialah apabila mencari mekanisme kunci global, kebanyakan mereka menggunakan redis, dsb., dan sukar untuk mencari kes menggunakan get_lock.
Jadi saya ragu jika get_lock mysql mempunyai sebarang kelemahan.
Situasi semasa saya ialah saya sudah menggunakan mysql, tetapi bukan redis.
Jadi, bolehkah saya menggunakan get_lock mysql untuk penguncian global? Atau adakah terdapat sebarang kekurangan get_lock mysql?
Soalan ini telah diundi ditutup, tetapi beberapa cadangan mungkin membantu.
Daripada apa yang saya faham, anda mempunyai beberapa mesin memproses set data yang sama - anda mahu memastikan eksklusiviti item data. Anda nampaknya sedang mempertimbangkan mekanisme penguncian nasihat, di mana pengguna data perlu mencari kunci dan kemudian menciptanya sebelum menggunakan data. Penguncian nasihat hanya boleh digunakan sebagai pilihan terakhir:
Sila cuba siarkan semula dengan butiran sinki data dan sumber data serta sumber yang tersedia dan bukannya bertanya sama ada ia penyelesaian yang sesuai untuk masalah yang tidak jelas.