【问题标题】:How to initiate and perform a DB action periodically in php/mysql如何在 php/mysql 中定期启动和执行数据库操作
【发布时间】:2017-06-13 19:22:29
【问题描述】:

我正在使用 php/mysql 并且必须从创建日期起以给定的频率更新用户的计数器。对于第 1 类用户,计数器在每 24 小时后递增 3 天,对于第 2 类用户,在每周 4 周后递增。

我想在 users 表上创建一个触发器,以便在每次插入后创建一个从创建开始并具有所需频率的事件。但我不知道数据库会如何反应,尤其是会创建数千个事件。

其他可能性是 cronjob,例如每小时检查一次创建日期、类别和最后一次出现。但这与创建日期/时间不匹配,并且当更新未应用于某些用户时,还必须检查每一行才能完成这项工作。

哪种方法最好并且不会影响数据库性能(大量用户)。还有其他有效的方法吗?

【问题讨论】:

标签: php mysql


【解决方案1】:

不建议为每个用户添加 crontab 条目。这里有两个选项 MySQL 事件或使用像 beanstalkd 这样的队列,然后将作业添加到队列中。

我更倾向于 MySQL 事件。 这是一个文档:

http://www.mysqltutorial.org/mysql-triggers/working-mysql-scheduled-event/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多