我使用 MYSQL 作为我的数据库,PHP 作为我的编程语言。我想运行一个 cron 作业,该作业将运行直到当前系统日期与我的数据库表中名为“PROJECT”的“截止日期(日期)”列匹配。一旦日期相同的是,必须运行更新查询,这会将状态(项目表的字段)从“打开”更改为“关闭”。
我不太确定 cron 作业是否是最好的方法,或者我可以使用触发器,或者可能是其他东西。此外,我使用 Apache 作为我的 Web 服务器,我的操作系统是 windows vista。
最好的方法是什么? PHP 调度程序或 cron 作业或任何其他方法?有人可以启发我吗?
我认为你的观念需要改变。
PHP 无法调度作业,MySQL 也不能。 MySQL 中的触发器在 mysql 查询发生时执行,而不是在特定时间执行。两者都不
在 Web 开发中,这种限制通常不是问题。原因是您的 PHP 应用程序应该控制所有数据的进出。通常,这仅意味着向用户或其他程序显示该数据或其他格式的 HTML。
对于你的情况,你可以这样思考。截止日期是一个设定的日期。您可以将其视为数据,并将其保存到数据库中。截止日期何时发生并不重要,重要的是您在数据库中发送的数据是否被正确查看。
当向您的申请提出请求时,请检查截止日期是否已过去,如果是,则显示项目已关闭 - 或在显示之前更新项目已关闭。
确实没有理由独立于 PHP 应用程序来更新数据。
通常,您想要安排的唯一事情是会影响应用程序负载的作业,或者只需要完成一次的作业,或者并发或时间存在问题的作业。
就您而言,这些都不适用。
PS:我还没有尝试过 PHPscheduler,但我猜它不是一个真正的调度程序。 Cron 是一个守护进程,它会休眠直到给定任务在其队列中到期,然后执行该任务,然后休眠直到下一个任务到期(至少在当前算法中是这样做的)。如果没有套接字和分叉扩展(作为特殊设置),PHP 就无法做到这一点。因此,PHPscheduler 很可能只是在每次加载网页时(每当 PHP 执行页面时)检查任务的日期是否已过期。这与您只是检查项目上的日期是否已过期没有什么不同,而无需 PHPScheduler 的开销。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)