在用户指定的日期和时间安排任务


PHP : Schedule a task at user specific date and time

我需要创建一个功能,如谷歌日历,其中用户有权更改日期和时间提醒获得电子邮件或短信。我已经谷歌,发现唯一的解决方案是使用cron工作。

然而,cron作业在特定时间重复运行(取决于我们如何设置它)。我们可以通过cron job来完成。但是我想在这种情况下,用户可以改变提醒的时间,然后如何通过cron作业来维护它?特定于用户的cron作业类型

意味着动态创建一个cron作业吗?有可能吗?是,是否存在服务器权限问题?

解决方案可能是每分钟设置一次cron作业

* * * * * /path/to/php /var/www/html/a.php

,在你的脚本中,你检查所有用户有警报current_hour:current_minute,并向他们发送警报…

有一个PHP库,你可以使用它来执行任务,安装它,

composer require hutnikau/job-scheduler

这里是示例代码,

$startTime = new 'DateTime('2017-12-12 20:00:00');
 $rule = new 'Scheduler'Job'RRule('FREQ=MONTHLY;COUNT=5', $startTime); //run monthly, at 
 20:00:00 starting from the 12th of December 2017, 5 times
 $job = new 'Scheduler'Job'Job($rule, function () {
    //do something
 });

由作业调度器设置库和所需的cron作业,否则将无法工作。

作为一种替代方案,您可以在服务器中使用Cron Job, Cron Job只是定期执行作业中定义的脚本。通过使用Cron Job,您将能够控制它在年,月,日,时,分和秒中应该执行多少次。

at命令将允许您安排一次性任务运行,类似于cron。

每分钟运行一个cron作业,直到每个cron作业的执行时间超过60秒。

老实说,这听起来应该通过消息队列或工作者来处理。