实现php的异步任务队列

发布于 2022-09-06 10:25:53 字数 558 浏览 16 评论 0

需求就是异步执行任务队列,想要尽可能快的处理,所以不想定时隔一段时间执行一次任务队列。想要一直检查任务队列,有新任务就要立马执行。

参考网上关于定时任务的方案写的如下代码:
这是一个脚本文件,反复自己访问自己来实现“循环“。

set_time_limit(0); // 不限制时间

  // 获取当前页面路径
  $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

  // 后台可控制是否开启任务
  $enable_crontab_run = variable_get('enable_crontab_run', 0);

  if (!$enable_crontab_run) {
    die('定时任务脚本终止');
  }

  // 获取所有待处理任务
  # code...
  foreach ($result as $value) {
    // 处理单个任务
    # code...
  }

  // 再次访问当前页面
  file_get_contents($url);

不知道这种方案能行吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

橪书 2022-09-13 10:25:53

如果我没看错,你这是搞了一个无法退出“递归”啊。。

话说,你就写一个 cli程序 while(true){do sth} 的逻辑不就可以了吗。如果担心他挂掉,你在用一个 supervisor 去监控着,进程挂了就拉起一个。

如果你上面的程序是web页面的话,把最后面一句 file_get_contents改成 header("Location: $url"); 你只要保证浏览器不死,就可以了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文