问题
使用PHP& Jquery如何在给定的时间后执行代码,例如1个月(即使在用户关闭浏览器等之后)
方案
我想构建一个在用户指定的时间内执行某项操作的应用程序,有点像hootsuite"。但我无法理解它是如何运作的。
我知道你可以使用node.js(我很难理解并在我的任何一个laravel项目中实现它......)但即便如此,如果说1000人有等待执行的东西,服务器也不会充满压力服务器整整一个月甚至一年还在处理其他用户请求?
我看了一下,CRON的工作出现了,但这听起来不像我在寻找的东西!我不确定,如果有人能向我解释他们认为我能做些什么,我会感激不尽
答案 0 :(得分:1)
基本上您正在寻找的是调度系统。 UNIX cron工具出现在您的搜索中的原因是因为它是一个调度工具;它允许UNIX用户安排在特定时间发生的任务。其他操作系统也有任务调度程序。
调度程序的主要实现策略是某种轮询机制,即一个软件组件,它定期检查是否有任何现在要执行的计划任务,如果是,则执行它们。
为了实现这样的事情,你需要一种方法来存储有关计划任务的信息(例如,当它们应该发生时,它们属于谁,他们应该做什么)。例如,您可以使用数据库管理系统或磁盘上的文件。
您还需要一个组件来进行轮询。这可能是一个守护进程(即一个始终在后台运行的进程),它包括一个休眠(或等待或超时)调用,允许它每隔一段时间检查一次计划任务,而不是不断检查(从而最有可能消耗)所有CPU周期!)。或者它可以是一个程序(如果你愿意,在PHP中),它本身由主机系统上的cron运行,比如说,每五分钟检查一次计划任务,然后执行,也许在不同的进程中执行。如果您要使用cron,那么有许多PHP包装器可以帮助https://packagist.org/packages/peppeocchi/php-cron-scheduler。
但是,您可以考虑使用现有服务,而不是自己实现所有这些。似乎有几个选项,包括至少一个免费(限制内)服务:https://atrigger.com/。