我遇到一个问题,如何在一段时间间隔后使用cron运行我的组件控制器中定义的任务。如果有人有任何建议如何做,请帮助。
答案 0 :(得分:2)
与通过下面的表单操作URL运行控制器任务相同。
index.php?option=com_mycomponent&task=mycontroller.task_name
通常,您可以分别为options,task,controller
设置上述表单的操作网址或隐藏字段。
在这种情况下你不能用cron做的事情是管理员控制器任务, 因为它需要用户登录。因此,在这种情况下,您必须在前端控制器中编写这些功能,可以通过URL访问。
一个安全问题是你应该为你的Cron Jobs添加一个密钥,比如简单的param &key=someencrypetd_value
和url,然后在启动控制器任务功能之前解密并比较你的控制器任务。这将帮助您阻止某人通过直接网址执行您的Cron。
要设置Cron Jobs,只需登录Cpanel-> Cron Jobs->设置您的网址。
此处网址应该像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
来执行此操作