gpt4 book ai didi

php - 从 4 个相同的 Web 服务器中的 1 个运行 Cron 作业,所有这些服务器都具有相同的作业

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:18 25 4
gpt4 key购买 nike

我正在使用 AWS Amazon Web Services,并且有 4 个相同的 Web 服务器。我有一个 cron 作业设置来发送只需要从一台服务器运行但存在于所有 4 台服务器上的电子邮件。

这些 Web 服务器上的所有内容都是相同的,这很适合我,但目前 cron 作业在所有 4 台服务器上运行。因此,我正在寻找一种解决方案,了解如何在所有 4 台服务器上运行该作业,但只在一台服务器上运行。

我确实有一个数据库,并考虑使用一个 tmp 表来第一个在该表中写入/注册自己然后将是唯一运行的(其他人会读取它然后不再执行超过这一点)。但我很担心,因为它们都使用相同的系统时钟,因此可能会同时读取表,即使一个写入表,其他人也认为它们也可以运行。

使用表是否能够将 4 个网络服务器限制为仅 1 个连续或相同的时钟因素会妨碍?

注意:服务器名称可能会随着时间而改变,因为它们更像是资源而不是永久系统。 (例如:可以在需要时启动新的)...

有更好的方法吗?注意:我不想要不同的服务器,我希望它们都相同。

谢谢你

最佳答案

对我来说我会这样做:

1 - create a lock for each of the server
2 - define a list of server like ['1'=>'server ip', '2'=>'server ip',...]
3 - pass in server id in cron job as args
4 - modify the script if (lock not exists) do run then create a lock for this server, delete the lock for next server.
5 - delete the lock for the first server to start with.

关于php - 从 4 个相同的 Web 服务器中的 1 个运行 Cron 作业,所有这些服务器都具有相同的作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16140960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com