php cron replacement
php cron replacement
我有一些php脚本updater.php
做一些工作1-2分钟。完成脚本工作很重要。
我可以用cron运行它,但是我有一些想法。
脚本将运行具体的时间只有当用户得到例如主页。在这种情况下,没有必要每次都执行脚本,只有在需要时才执行。
所以,用户加载http://localhost/index.php
, js脚本发布小get请求:
$.get('/json/updater.php', function(data){ return true; });
请求在1-2分钟内正常进行。
问题:如果用户在浏览器中关闭选项卡并因此打破$,updater.php
工作的处理将停止吗?get请求吗?
如果关闭浏览器窗口,请求不会被取消,因此PHP将能够简单地完成脚本(假设执行时间不超过最大配置时间参见:http://php.net/manual/en/function.set-time-limit.php)。当然,你在JavaScript中做的任何事情都会在你关闭窗口后停止。
请记住,您可以直接从命令行或使用cron执行PHP脚本,只需使用PHP解释器的路径。对于计划作业,我建议不要有任何前端需求(JavaScript/Browser),因为这会导致一致性问题,您希望作业每2分钟运行一次而不会失败,并且添加另一个步骤(AJAX或Browser)会引入频率变得不一致的可能性。
如果用户在浏览器中关闭选项卡并因此打破$,那么update .php的处理将停止。get请求吗?
只有当他们在实际发送请求之前关闭选项卡时,这将相当快,在这种情况下,它不会"停止",而是宁愿"从未开始"。
一旦从客户机接收到GET请求,请求本身就完成了。您可以在服务器上生成一个进程,而浏览器无法控制它。浏览器只能停止客户端代码的运行。
相反,为什么在单独的请求上这样做?如果您希望在加载页面时生成进程,为什么不在 index.php
中从生成它呢?好处包括:
- 即使用户禁用了JavaScript,进程也会运行。
- 即使用户在浏览器中加载/运行JavaScript代码之前取消导航,进程也会运行。
- 稍微减少网络开销,因为只有一个请求到服务器。
- cron作业与Javascript计时事件
- 对象中的str.replacement()
- 不能对包含同一类的所有元素使用.replacement()
- Livequery and DOMNodeInserted replacement for IE
- 去除autoplay=1,带有javascript.replacement()
- 字符“”的Javascript.replacement();带有字符“”;
- javascript.replacement()不会替换所有出现的内容
- 在文本区域中,输入用jquery str.replacement()替换哭泣的smiley live的单引号
- CRON和页面加载JS
- Google Places Library Replacement for google.maps.LocalSearc
- 可以用两个搜索值替换JavaScript.replacement函数
- CSS3 replacement for jQuery.fadeIn and fadeOut
- 在javascript中使用.replacement()函数时,请避免取消挂起事件处理程序
- 将cron表达式转换为人类可读字符串的JavaScript API
- .replacement()存在问题
- Replacement of Element.setUserData
- 运行一个包含来自 cron job 的 javascript 的 php 文件
- 如何在 php 中以 CRON 格式格式化日期和时间
- Angular replacement for arguments.callee.caller
- php cron replacement