[英]How To Dispatch Queued Jobs In Laravel On Shared Hosting (CPanel)
大家好。 我创建的 Laravel 应用程序存在这个持续存在的问题。 我想向订阅者发送批量电子邮件。 我想对电子邮件(作业)进行排队,以免它们减慢我的应用程序的速度。 我正在使用共享主机帐户。 没有队列进程,邮件工作正常。 但是,没有它,它们就无法工作。 我使用数据库作为队列连接,并且在我的数据库中设置了“jobs”表。 我想到目前为止,一切都运行良好,因为无论何时我发送邮件,我都可以看到数据库中的作业。 问题是我似乎无法在共享主机上创建 queue:work 命令,这与我的系统(本地)不同。
此外,我使用php artisan make:command cronEmail
创建了命令,在 App/Console/Kernel.php 中,我设置了调度方法如下
protected function schedule(Schedule $schedule)
{
$schedule->command('queue:work --tries=3')
->cron('* * * * * *')
->withoutOverlapping();
}
然后我在我的 cpanel 上创建了一个 cron 作业,如下所示:
php /home/myrootfolder/mywebsitefolder/artisan queue:work >> /dev/null 2>&1
然而,我仍然没有得到任何结果。 邮件未发送。
我的网站文件设置如下:在 cpanel 的根文件夹中,我创建了一个名为“ mywebsitefolder ”的新文件夹,我将除“public 文件夹”之外的所有 Laravel 文件放在其中。 public 文件夹的内容放在根文件夹的“public_html”中。 然后我相应地编辑了我的 index.php。 如下图所示:
require __DIR__.'/../mywebsitefolder/vendor/autoload.php';
$app = require_once __DIR__.'/../mywebsitefolder/bootstrap/app.php';
那么,是不是我没有正确地指向我的“工匠”,或者我把一切都弄错了? 拜托,如果有人知道这样做的更好方法或我哪里出错了,我会很高兴。 提前致谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.