php - 按时区 php 发送 cron 作业通知

标签 php cron timezone timezone-offset

我想编写一个脚本,每天下午 2 点向用户的手机发送推送通知。但是用户来自世界各地,因此我需要根据特定用户的时区及时发送该通知,我将其保存在数据库中,如“GMT+4”。

我需要通过 Cron 作业来完成此操作。我从未使用过它,所以我不知道如何编写该脚本并使其在 PHP 中工作。有人可以帮助我吗?

最佳答案

一个非常简单的方法是让 cron 作业每 1 分钟调用一次 PHP 脚本,并让它检查数据库中是否有需要完成的事情。如果需要做某事now(),那就去做吧。

crontab中你可以使用这样的东西,

* * * * *   /usr/bin/php /path/to/my/script.php

script.php可以是这样的

<?php
$ts = time();

// Run for up to 50 seconds
while($ts + 50 > time())
{
   ... SELECT id, time FROM Table WHERE time <= timeFromGMT(GMTvalue) ...
   if(returns a row){
     Send notification;
     Set a flag that notification is send;
   }
   sleep(5);       
} 

注意:使用一些锁定机制来防止同时多个进程。

关于php - 按时区 php 发送 cron 作业通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31262661/

相关文章:

php - date_create_from_format 等效于 PHP 5.2(或更低版本)

linux - 每 10 分钟配置一次 Cron 任务并在 6 :30 am 开始

postgresql - 谁负责更新 pg_timezone_names View ?

google-app-engine - Python tzinfo 和夏令时

php - CakePHP:无法在 models.php 中重新声明类 AppModel

php - 使用原则 2 确定缓存命中/未命中

python - 如何成功启动 python cronjob?

amazon-web-services - AWS cron 表达式每隔一个星期一运行一次

javascript - setUTCminutes 与 setMinutes 之间的区别

php - 使用 PHP/SQL 插入多行时出现问题