【问题标题】:Running scheduled job in Codeigniter在 Codeigniter 中运行计划作业
【发布时间】:2013-08-30 21:22:07
【问题描述】:

我有一个要求,最终用户将安排一项任务,并且 Web 应用程序需要在预定的时间和日期运行该任务。

我在 linux 环境中使用共享主机。 我已经将 Cron 用于非常基本的电子邮件发送脚本。但在那种情况下,我必须在主机中从 cpanel 设置 cron。

根据当前要求,我需要最终用户从前端的网站安排作业,而应用程序事先不知道该安排。我需要使用 CI MVC 来做到这一点。

我还可以使用 cron,如果可以,我将如何通过 CI 控制器设置 cron 作业?

任何帮助表示赞赏。

【问题讨论】:

  • 您的共享主机应该仍然有一个 cron 工具。如果不向管理员询问您的帐户以获得最佳方法。然后每小时设置一次,如果没有新作业,它会在一小时内再次检查。

标签: php codeigniter cron


【解决方案1】:

您可以使用EasyCron 之类的服务。或者,可以组合一个 Web 界面来编辑 cron 作业。

我能想到的唯一其他方法是实现某种伪 cron。 WordPress 这样做 - 我知道它的工作原理是在数据库中存储一个时间戳,并在每次收到请求时再次检查时间,如果尚未完成则执行任务,并重置时间戳。

【讨论】:

  • 我猜伪 cron 不适用于我的情况,因为它需要基于时钟的触发器才能执行作业。 EasyCron 是一个可行的选择,唯一让我担心的是我的工作 URL 将是公开的,并且如果获得访问权限,任何人都可以执行。如果提供安全性,放置一个用于创建/编辑 cron 作业的 Web 界面是最合适的选择。
  • 您可以使用 .htaccess 限制对作业 URL 的访问,以确保它只能由 EasyCron 触发 - .htaccess 可以禁止基于 IP 地址或域名的请求
猜你喜欢
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 2018-02-28
  • 2015-08-03
  • 1970-01-01
  • 2015-04-08
  • 1970-01-01
相关资源
最近更新 更多