我制作了一个提醒系统,可以在每个提醒中设置的日期和时间发送电子邮件。
我希望有一个自动化函数在后台执行此电子邮件发送脚本,这样当服务器打开时,此函数将在不中断其他进程的情况下运行。
修改 我在Windows 10上运行PHP。
答案 0 :(得分:0)
您需要设置 cron作业以每 X 分钟/小时/天/ ...运行您的代码。>
在控制器中创建一个方法并将代码放入其中。然后设置你的cron作业以在特殊时刻运行它。
如果您有cPanel或其他管理面板,那将很容易。
编辑#1 :要在CLI中运行,您应该使用php命令运行index.php并将控制器和操作名称作为参数发送。如果您有一个名为 User 的控制器和名为" happy_birthday"的方法,那么您需要运行此命令:php index.php users happy_birthday
。
答案 1 :(得分:0)
继续从Ali Farhoudi回答。
您需要使用$ this-> input-> is_cli_request()的授权
https://ellislab.com/codeigniter/user-guide/general/cli.html
is_cli_request()将确保您从服务器运行命令,IE没有人刚刚导航到该URL并运行该脚本。
大多数托管服务都有一个简单的方法(运行一个cron)。您最初可能会发现一些试验和错误,因为您的开发服务器可能与生产不同。因此,在您的机器上运行脚本/终端上的脚本的原因与服务器不同,原因显而易见。
所以它只是一个像任何其他控制器一样,在给定时间服务器运行。
我看起来像这样,设置在一个cron里面
php-cli /home/a_subfolder/public_html/another_subfolder/myscript.php
这是在Linux服务器上运行,所以codeigniter问题部分在上面,你如何在windows中运行cron,不知道/关心
检查一下。
What is the Windows version of cron?
我猜你的本地运行只是在那时?从Windows 10来看。