有没有办法在没有cron的情况下从服务器获得响应?

时间:2017-02-01 14:28:50

标签: php mysql cron web-technologies

我想运行将扫描数据库并自动执行操作但不使用cron的脚本。我使用PHP作为编程语言,使用MySQL作为DBMS。在这里,我已经提到了我正在努力开发的功能的快速概念

我有一个模块,我需要在24小时的持续时间内通知用户动态时间。那是用户发布一个帖子,如果他在24小时内没有得到任何回复,那么他将自动得到通知。因此,如果一个用户在晚上8:30发布,那么他将在第二天同时收到通知。如果第二个用户在晚上7:30发布,那么他将在第二天晚上7:30收到通知。

现在,首先想到的是设置cron,理想情况下应该有按照计划运行脚本的调度程序。在这种情况下,我们需要安排特定的间隔来自动运行脚本,但在这里我将没有任何间隔的修复时间。我知道我们可以通过在几分钟内设置cron来做到这一点但是我没有找到让服务器每隔5-10分钟运行脚本的选项。所以,我决定找一个替代品(如果可能的话),并考虑在PHP或服务器中是否有任何技术可以自动运行脚本,扫描数据库,获取时间以及是否在24小时达到,然后发送通知

我得到了我同事之一使用套接字的建议,但是我也找不到有用的

我不确定是否有任何办法。所以,如果你们可以帮助我找到答案,那么对我的改进研究来说真的很有帮助。

提前致谢!

2 个答案:

答案 0 :(得分:3)

你想要什么,并且是descibing, 是一个cronjob。

  

“但在这里我没有任何间隔的修复时间”

你的意思是你不能得到类似“我希望这个用户收到通知的东西,从现在开始24小时,但它不能像这样工作”? 如果是这样,那么这是一个逻辑问题,可以通过以下方式解决:

$users2notify = getUsersWithAction24hoursAgo();
notifyUsers( $users2notify ); // only notify actual needed users

如果由于技术限制你不能拥有cronjobs,我建议切换主机。真的没有一个适当的替代cronjobs,因为cronjobs做得很好。

PS:你的朋友套接字建议,忽略它,因为它只是将问题转移到Javascript。

答案 1 :(得分:0)

使用cron是最简单且最PHP的解决方案,但如果您真的讨厌cron,您可以启动nodejs应用程序,这会延迟24小时的请求:您发送对http://localhost:5000/delay?replayTo=http://localhost:80/che‌​ckUser?id=$idOfUserT‌​oCheck和nodejs的请求将在24h后发出get请求;你将不得不开发nodejs应用程序,但它并不复杂。

在此示例中,5000是nodejs应用程序将侦听的端口;它可以是任何未使用的端口。