我的数据库将包含电子邮件列表,用户将创建价格表以发送给这些客户的电子邮件。我希望在点击按钮时确保价格表在发送之前是正确的,而不是设置CRON作业来处理这个问题。
我正在使用Codeigniter和远程主机上的Linux服务器。
当脚本完成(满足HTTP请求)时,ajax会删除处理图标。
if (shell_exec("ps aux | grep " . $pid . " | wc -l") > 0) { // PID is running }
检查进程是否正在运行,其中$ pid是函数的参数。我在codeigniter中运行PHP脚本,并且需要一种方法,当我访问其他页面或刷新当前页面时,我可以检查脚本是否仍在运行,以获得正确的用户反馈。
答案 0 :(得分:2)
您希望避免因性能而使用数据库,但在某些地方您需要标记或其他方式来标识脚本正在运行。 PHP会话已经结束,因为从另一个会话中查看它的人不会设置相同的标志。
尝试使用比DB更快的东西 - 比如memcache。
<?php
// if memcache->is_running is set
// echo some response message saying it's running and exit
// set memcache->is_running w/ the start time maybe
// ... your code
// write memcache->is_running start timestamp and end timestamp to db or file
// clear memcache->is_running