首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel-4 :如何使用队列创建守护进程

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

Stack Overflow用户
提问于 2013-12-31 11:23:31
回答 3查看 7.9K关注 0票数 3

我需要创建一个Laravel守护进程,从网络中获取一些数据并将它们存储在数据库中,我想用Laravel来实现这一点,以便在我的查询中使用雄辩的语言。我被告知要查看队列,但正如我在文档中看到的那样,如果首先访问url,就会调用队列。有什么方法可以启动一个队列并使它永远运行吗?队列在本地环境中工作吗?到目前为止,我有以下代码:

routes.php:

代码语言:javascript
复制
Route::get('daemon', function(){

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

});

SendEmail.php

代码语言:javascript
复制
<?php 

class SendEmail {

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

}

但是我得到了类SendEmail不存在

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-31 12:28:59

如果您想每n分钟运行一次任务,您可能应该在工匠指挥上运行一个cron作业。这将更适合您的用例。

排队是不一样的。它们用于在队列列表中堆叠任务。后台是正在运行的监听器,等待新任务。也检查一下文档。您可以通过控制台中的php artisan queue:listen启动监听器。医生建议用监督来管理那项任务,尽管没有必要。只要不终止侦听器,侦听器就会运行。

但是,您也可以将手工命令与队列结合起来。例如,通过cron作业运行一个命令,该命令生成新的排队任务。队列侦听器稍后将运行这些任务。

另外,检查这个很好的答案中的cron作业与队列。

票数 8
EN

Stack Overflow用户

发布于 2014-09-05 22:18:26

您可能已经保存了Laravel不知道在哪里查找的SendEmail类。

如果您使用的是composer,那么查看composer.json和'autoload‘和'classmap’数组,然后在那里添加您的目录。记得运行‘作曲家转储-自动加载’或‘作曲家更新’。

或者尝试将您的目录添加到app/start/global.php ClassLoader函数中。这对找不到的类有帮助。

票数 2
EN

Stack Overflow用户

发布于 2013-12-31 12:20:40

如果您想要创建一个队列'worker‘进程并让它永远运行,那么您应该看一看:http://supervisord.org/主管将监视您的(worker)进程,如果它退出,在发生致命错误时会重新启动它,等等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20856580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档