【问题标题】:How can I check and change data in a mysql every 15 sec?如何每 15 秒检查和更改 mysql 中的数据?
【发布时间】:2011-04-11 03:29:56
【问题描述】:

在我的网络应用程序中,用户有 5 分钟的时间来完成某项工作,5 分钟后,该工作应传递给其他人。因此,每个作业都会有 user_id,并且该 user_id 值必须每 5 分钟更改一次。问题是有多个作业,我们希望使用 15 秒的间隔让脚本定期运行以处理此更改。并且工作最多会传递给其他人4~5次,之后将被忽略。

工作和用户数据存储在 MySQL 数据库中。

我最初的想法是使用 cron-job 和 PHP 脚本文件,让 cron-job 每 15 秒运行一次 PHP 脚本。 PHP 文件将读取作业表,选择所有具有超过 5 分钟时间值的作业,并将它们获取给其他用户(无论一个用户是否获得所有作业)。我只想定期运行它而不占用太多资源。但这是个好主意吗?一旦工作数量增加,这不会占用太多资源吗?

虽然它不必保持一致(13~16 秒的间隔就可以了),但我们希望脚本不会停止。

【问题讨论】:

  • 能否在页面请求时动态确定合适的用户id,而不是每5分钟静态更新一个用户id字段?
  • 你必须找到 cron 以外的东西 - cron 每分钟只能做一次(它不会做几秒钟)。我认为 cron 手册建议在这种情况下在适当的时间使用 wait 的常规程序/脚本。
  • 怎么样...设置网页每隔几分钟刷新一次?或者页面上可能有一个 iframe,并且每隔一分钟左右就会运行一些 ajax 以获取新列表。或者,让 cron 运行 updaescript,它会更新,然后休眠 15 秒,使用 curl 请求调用自身,再等待 15 秒,再次调用自身(curl),然后死亡。或者,如果不是将用户 ID 保存在字段中...如果分配的用户是从记录的年龄派生的...在前五分钟,它属于用户 234。在第 6-10 分钟属于用户 876...

标签: php mysql cron


【解决方案1】:

创建一个读取表状态更新时间的cronjob。

-- 显示表格状态,如table;

示例:更新时间:2011-04-10 15:27:32

您可以在 cronjob 中执行逻辑来检查该日期。如果该日期大于 15 秒前或其他任何时间,则您有更新的记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-23
    • 2019-01-05
    • 1970-01-01
    • 2021-06-30
    • 2018-12-23
    • 1970-01-01
    • 2014-06-27
    • 2021-12-12
    相关资源
    最近更新 更多