Laravel-4:如何使用队列创建守护进程

Joh*_*ohn 3 php mysql localserver laravel-4

我需要创建一个Laravel守护进程来从网上获取一些数据并将它们存储在数据库中.我想在Laravel中执行此操作以便使用Eloquent进行查询.我被告知要查看队列,但正如我在文档中看到的那样,如果您首先访问URL,则会调用队列.有没有办法启动队列并让它永远运行?队列是否可以在我的本地环境中工作?到目前为止,我有以下代码:

routes.php文件:

Route::get('daemon', function(){

    Queue::push('SendEmail', []);

});
Run Code Online (Sandbox Code Playgroud)

SendEmail.php

<?php 

class SendEmail {

    public function fire($job, $data)
    {
       dd('ok');
    }

}
Run Code Online (Sandbox Code Playgroud)

但我得到的类SendEmail不存在

aeb*_*old 8

如果你想每n分钟运行一个任务,你应该在artisan命令上运行一个cronjob .这将更好地适合您的用例.

队列是不同的.它们用于在队列列表中堆叠任务.在后台是一个正在运行的监听器,等待新的任务.检查文档.您可以php artisan queue:listen在控制台中启动监听器.文档建议使用supervisord来管理该任务,尽管没有必要.只要您不终止侦听器,侦听器就会运行.

但是,您也可以将artisan命令与队列结合使用.例如,通过cronjob运行命令,生成新的排队任务.队列侦听器稍后将运行这些任务.

另外,检查cronjobs与队列的这个非常好的答案.