【发布时间】:2014-01-30 09:14:49
【问题描述】:
我遇到一个问题,即如何在某个时间间隔后使用 cron 运行组件控制器中定义的任务。如果有人对如何做到这一点有任何建议,请提供帮助。
【问题讨论】:
我遇到一个问题,即如何在某个时间间隔后使用 cron 运行组件控制器中定义的任务。如果有人对如何做到这一点有任何建议,请提供帮助。
【问题讨论】:
它与通过如下表单操作 url 运行控制器任务相同。
index.php?option=com_mycomponent&task=mycontroller.task_name
通常您可以像上面一样设置表单的操作网址或单独为options,task,controller设置隐藏字段。
在这种情况下你不能用 cron 做的事情是管理员控制器任务, 因为它需要用户登录。因此,在这种情况下,您必须在可以通过 url 访问的前端控制器中编写这些函数。
一个安全问题是您应该为您的 Cron 作业添加一个密钥,例如带有 url 的简单参数 &key=someencrypetd_value,然后在启动控制器任务功能之前在您的控制器任务中解密和比较。这将帮助您防止有人通过直接 url 执行您的 Cron。
要设置 Cron Jobs,只需登录 Cpanel->Cron Jobs->设置您的 url。
这里的网址应该是完整的,比如http://www.yourdomain.com/index.php?option=com_mycomponent&task=mycontroller.task_name&key=yoursecretkey
更多关于设置Cron with Cpanel
示例命令如下所示。
wget -O /dev/null "http://www.yourdomain.com/index.php?option=com_users&view=registration&task=registration.UpdateAllShoppers&key=gdyr73501250"
您还可以设置像Minute -0 , Hours - 0 , Day - *, Month -* ,Weekday -* 这样的时间,以便在12:00AM 全天执行此操作
【讨论】: