我需要创建一个功能,如谷歌日历,其中用户有权更改日期和时间提醒获得电子邮件或短信。我已经谷歌,发现唯一的解决方案是使用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。
老实说,这听起来应该通过消息队列或工作者来处理。