如何在共享主机(CPanel)上在Laravel中分配排队的作业

问题描述 投票:0回答:1

大家好。我创建的laravel应用存在这个持续存在的问题。我想向订阅者发送批量电子邮件。我想将电子邮件(作业)排队,以免它们拖慢我的应用程序。我正在使用共享的托管帐户。没有队列过程,邮件可以正常工作。但是,没有它,它们将无法工作。我将数据库用作队列连接,并且在数据库中设置了“作业”表。我猜到现在为止,一切工作都很好,因为无论何时我发送邮件,我都可以看到数据库中的作业。问题是,与我的系统(本地)不同,我似乎无法在共享主机上创建queue:work命令。

此外,我使用php artisan make:command cronEmail创建了命令,并且在App / Console / Kernel.php中,我设置了[[schedule method如下``受保护的功能时间表(时间表$ schedule){

$schedule->command('queue:work --tries=3') ->cron('* * * * * *') ->withoutOverlapping(); }
然后,我在cpanel上创建了一个cron作业,如下所示:

php /home/myrootfolder/mywebsitefolder/artisan queue:work >> /dev/null 2>&1

但是,仍然没有任何结果。邮件没有发送。

我的网站文件设置如下:在cpanel的根文件夹中,我创建了一个名为“ mywebsitefolder”的新文件夹,在其中放置了所有的laravel文件,除了“ public folder”。公用文件夹的内容放置在根文件夹的“ public_html”内部。然后,我相应地编辑了index.php。如下所示:

require __DIR__.'/../mywebsitefolder/vendor/autoload.php'; $app = require_once __DIR__.'/../mywebsitefolder/bootstrap/app.php';

所以,可能是我没有正确指向我的“工匠”,还是我把所有事情都弄错了?请,如果有人知道这样做的更好方法,或者我弄错了什么,我会很高兴的。预先感谢。

php laravel queue cpanel jobs
1个回答
0
投票
您是否尝试调用命令?

php /home/myrootfolder/mywebsitefolder/artisan cronEmail >> /dev/null 2>&1

您的共享托管允许ssh连接吗?


0
投票
您可以轻松地从Cpanel中找到打开它的终端并运行此命令

nohup php artisan queue:work --daemon &

它将在后台运行您的queue
© www.soinside.com 2019 - 2024. All rights reserved.