如何为codeigniter设置cron作业url?

Posted

技术标签:

【中文标题】如何为codeigniter设置cron作业url?【英文标题】:How to set cron job url for codeigniter? 【发布时间】:2013-10-16 15:59:54 【问题描述】:

我正在为我的网站使用 Codeigniter。我必须使用 cron 作业来运行控制器功能之一。我在网站上使用路由。而且我没有在 url 中使用 index.php

例如http://my-domain.com/welcome/show,这里 Welcome 是我的控制器,show 是该控制器的函数名称。

我是这样用的,

0 * * * * php /home/username/public_html/welcome/show

它给出'没有这样的目录'

如何在 CPANEL 中为上述 url 设置 cron jon。

谢谢。

【问题讨论】:

【参考方案1】:
* * * * * php index.php controllername functionname

第一个 * - 分钟, 第二个 * - 小时, 第三个 * - 一个月中的一天, 第 4 个 * - 月, 第 5 个 * - 星期几。

欲了解更多信息,请访问:https://crontab.guru/

【讨论】:

【参考方案2】:

用途:

php index.php welcome show

作为 crontab 中的命令。例如:

0 * * * * php /home/username/index.php welcome show

来源(2.2.0 版) http://www.codeigniter.com/userguide2/general/cli.html

来源(版本 3.*) http://www.codeigniter.com/user_guide/general/cli.html

来源(版本 4.*) http://codeigniter.com/user_guide/cli/cli.html

【讨论】:

谢谢,我用过这个,但它会加载默认控制器。 您使用的是最新版本的 CI 吗? @Sachin try /usr/local/bin/php /home/user/index.php 欢迎节目 技巧在于加载与常规 /usr/bin/php 不同的 php 安装 我的机器上没有/usr/local/bin/php excelente,在我的例子中是 php /home/myusername/domains/example.com/public_html/index.php tasks inserttest【参考方案3】:

我正在使用 hostgator 的 cpanel。 我在用户控制器中创建了一个用户控制器和“run_cron_data”函数。 命令:wget www.your_site_url.com/index.php/user/run_cron_data

请看下面的截图

【讨论】:

【参考方案4】:

如果您使用的是 Hostgator(或任何其他 Linux 服务器),请尝试这个。

/opt/cpanel/ea-php72/root/usr/bin/php /YOUR_HOME_DIRECTORY/YOUR_USERNAME/public_html/marketing/index.php welcome emailcampaign 1

例如对我来说

/opt/cpanel/ea-php72/root/usr/bin/php /home3/adnan/public_html/index.php welcome emailcampaign 101

在哪里

welcome is the controller name
emailcampaign is the function name of welcome controller
101 = First argument of url.  

【讨论】:

【参考方案5】:

使用此过程通过 cPanel 设置 cron 作业:

    登录到您的 cPanel 界面。 转到“高级”部分。 点击“Cron 作业”。 从提供的列表中选择具体时间。 您应该在“命令”字段中输入要运行的命令。

【讨论】:

【参考方案6】:

如果您使用的是 cPanel,请使用以下命令:

/usr/bin/curl -k http://my-domain.com/welcome/show

这对我来说非常适合。

【讨论】:

【参考方案7】:

在 Linux EC2 实例上,这有效:

*/5 * * * * /usr/bin/php /var/www/html/cifolder/index.php [module] [function]

【讨论】:

【参考方案8】:
watch -n60 curl [your application path]/check_banalce/user_balance

在我的情况下,我使用 codeigniter,上面的命令每 60 秒执行一次在 check_balance 控制器中找到的 user_balance 函数。

【讨论】:

【参考方案9】:

我使用的是 codeigniter 3.0.3,我的服务器是 hostgator。对我来说,以下格式工作正常

*/15 * * * * /opt/php55/bin/php /home/username/public_html/myapp/index.php reminders index

上述命令每15分钟运行一次,命令中的提醒是控制器名称,索引是方法名称。

【讨论】:

@sachin 你可以试试0 * * * * php /home/username/public_html/yourapp/index.php welcome show【参考方案10】:

我已经做到了

 00 09-18 * * 1-5 /usr/bin/php /var/www/html/app/index.php crontest

crontest 是控制器的名称,它也使用模型从数据库中提取数据并定期发送邮件(每周一至周五上午 9 点至下午 6 点)

我刚刚查看了this page,它通过示例进行了非常详细的解释。希望这对其他人也有用。

【讨论】:

虽然理论上这可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。【参考方案11】:

这是我使用的 cron

/usr/bin/php /home/pia/www/jobs/index.php cron 时事通讯

解释:

a) $_SERVER['DOCUMENT_ROOT'] = /home/pia/www

b) codeigniter 网站根目录 = /home/pia/www/jobs

c) 'cron' = 控制器名称

d) 'newsletter' = 方法名称

【讨论】:

嗨,这是什么工具?【参考方案12】:

/usr/local/bin/php /home/username/public_html/index.php 控制器名方法名

这对我有用。

【讨论】:

感谢您的解决方案!如果我在我的应用程序中有登录名,这个解决方案只是一个简单的问题,它会询问为什么以及如何避免它? @Reshma D【参考方案13】:

我在cron下面用过

php /full-path-to-cron-file/cron.php /test/index

来源:http://www.asim.pk/2009/05/14/creating-and-installing-crontabs-using-codeigniter/

这对我有用。

谢谢大家

【讨论】:

【参考方案14】:

你也可以试试:

0 * * * * /usr/bin/curl --silent --compressed http://my-domain.com/welcome/show

或本地主机

0 * * * * /usr/bin/curl --silent --compressed http://localhost/welcome/show

希望对你有帮助。

【讨论】:

你能解释一下吗【参考方案15】:

你可以试试这个:

wget api.example.com/index.php/controller/function

【讨论】:

谢谢回复,意思是我的例子中的url是0 * * * * wget http://my-domain.com/welcome/show,对吗? 我觉得可以,你可以试试这个 谢谢 Suvash.. 这个网址对我有用。 wget yourSite.com/index.php/controller/method 我每分钟设置 2 个 cron,这些会创建许多 tmp 文件。 小心如果你正在使用它,因为基本上wget正在下载一个网站作为一个文件,所以你的服务器会有很多文件。例如,我运行了 2 次 wget localhost/my_controller/auth,然后我用 [root@myserver bin]# ls -l | grep auth 命令检查,我有 2 个文件:-rw-r--r-- 1 root root 57 Feb 27 07:53 auth-rw-r--r-- 1 root root 57 Feb 27 07:53 auth.1

以上是关于如何为codeigniter设置cron作业url?的主要内容,如果未能解决你的问题,请参考以下文章

如何为网络爬虫设置有效的 cron 作业

Codeigniter 中的 Cron 作业

如何为经过验证的行为电子邮件和丢失密码计时器编写 cron 作业脚本? [关闭]

如何为 cron 触发器处理石英夏令时的用户时区?

cron 作业不适用于 codeigniter 2.2.5

如何为真正的多语言网站设置 CodeIgniter?