标签: laravel-queue

在centos 7上安装和配置supervisord以永久运行Laravel队列

我想在我的项目中使用Laravel队列系统,我想运行php artisan队列:在服务器的后台永久工作,我做了一些搜索,我找到了一个命令行,即使从ssh终端退出后也可以运行它但它可以在某些情况下会失败,可能会给我带来可怕的问题.所以过了一会儿我发现有一个名为Supervisord的软件包,即使服务器重启后也可以重启命令.但不幸的是我的linux知识很低,所以我想请一个人从0到100逐步帮助如何安装Supervisord并在centos 7上配置它,之后设置队列命令行.非常感谢..

supervisord laravel centos7 laravel-queue

19
推荐指数
2
解决办法
3万
查看次数

Google使用laravel队列即时进行地理编码

我有大约100个GPS设备每10秒定期发送坐标.我的客户想要实时反向地理编码,以便在表格视图中查看他的车辆以及位置.我已经设置了一个队列来保存db中的所有数据包,然后我添加了如下所示的地理编码脚本

  1. 使用websocket接收TCP IP消息

    public function onMessage(ConnectionInterface $conn, $msg) {
     //get the message
     // send the dispatch job to save it in db
     $this->dispatch(new SavePacketsToDb($key_1, json_encode(
                                            array(
                                                'company_id' => $key_1,
                                                'vehicle_id' => $company->vehicle_id,
                                                'tracker_id' => $company->tracker_id,
                                                'lat' => $lat,
                                                'lng' => $lng,
                                                'imei' => $imei,
                                                'datetime' => $datetime,
                                                                                )
                             )));   
    
    Run Code Online (Sandbox Code Playgroud)

    }

  2. 运行队列

    public function handle(){
            $lat=$obj->lat;
            $lng=$obj->lng;
    
    
    
    $url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" . $lat . "," . $lng . "&key=mykey";
                    $json = file_get_contents($url);
                    $data = json_decode($json);
                    $status = $data->status;
                    $address = '';
                    if …
    Run Code Online (Sandbox Code Playgroud)

php google-maps message-queue laravel-5 laravel-queue

14
推荐指数
1
解决办法
523
查看次数

Laravel 7 - 停止处理作业并清除队列

我在 AWS 上有一个生产系统并使用 Laravel Forge。有一个正在处理作业的默认队列。

我已经创建了许多作业,现在希望删除它们(因为它们需要很多小时才能完成,而且我意识到我的输入数据很糟糕)。我创建了一个具有良好数据的新作业,但只有在所有其他作业完成后才会对其进行处理。

如何删除所有作业?

redis它之前是使用队列驱动程序设置的。我不知道如何删除作业,因此我将驱动程序切换到database,并重新启动服务器,认为这至少会让作业停止处理。然而,令我沮丧的是,它们仍在继续处理:-(

我什至从 forge ui 中删除了工作程序并重新启动了服务器:作业仍在处理。

为什么作业会继续被处理?

我怎样才能阻止他们?

laravel laravel-forge laravel-queue laravel-7

11
推荐指数
1
解决办法
4万
查看次数

Laravel 5.4中不存在"--queued"选项

我要为邮件创建队列作业.一旦我在命令提示符中按下artisan命令,php artisan make:job SendSMSMessages --queued我就会遇到问题.

"--queued"选项不存在.

我正在使用Laravel 5.4

请任何人都可以帮助我.我搜索了很多,但没有找到任何好的解决方案.

谢谢

php laravel-queue laravel-5.4 laravel-jobs

10
推荐指数
1
解决办法
2318
查看次数

关于Godaddy共享托管服务器(Linux)上Supervisor队列安装的说明

有人可以在Godaddy共享托管服务器上分享Supervisor队列安装的分步说明吗?我试图搜索和很多,但找不到一个.

laravel laravel-queue laravel-5.3 laravel-5.4

9
推荐指数
1
解决办法
918
查看次数

Laravel 队列速率限制或节流

我正在开发一个需要从第三方服务器获取数据的应用程序,并且该服务器每秒最多允许 1 个请求。

现在,所有请求都作为作业发送,我正在尝试实施 Laravel 的“速率限制”以每秒发布 1 个作业,但无法弄清楚为什么应该实施它,并且网络中没有实际示例。

有人实施了吗?

这有什么暗示吗?

queue laravel laravel-5 laravel-queue

9
推荐指数
2
解决办法
8322
查看次数

Laravel队列速率限制不执行工作

我正在尝试实现Laravel 5.7的队列作业速率限制,该功能在队列作业达到速率受限的外部API时使用。

这是我的工作:

    public function handle() {
        echo 'about to check throttling'.PHP_EOL;
        Redis::throttle('throttle-test')->allow(10)->every(5)->then(function () {
            // this is never executed
            echo 'doing work'.PHP_EOL;
        }, function () {
            // also never executed
            echo 'released back onto queue'.PHP_EOL;
            return $this->release(10);
        });
    }
Run Code Online (Sandbox Code Playgroud)

除了“ ...应用程序可以与Redis服务器进行交互”之外,没有提到需要将Redis用于队列,缓存或文档中的任何此类性质。无论哪种方式,这都是我的环境变量:

DB_CONNECTION=mysql
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=redis
Run Code Online (Sandbox Code Playgroud)

我已经确认RedisServiceProvider接收到了正确的预期配置:

array:3 [
  "client" => "predis"
  "default" => array:4 [
    "host" => "redis"
    "password" => null
    "port" => "6379"
    "database" => 0
  ]
  "horizon" => array:5 [
    "host" => …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-queue

9
推荐指数
1
解决办法
557
查看次数

Laravel 队列:重启不会杀死工作人员

我有一个通过 envoyer 部署到非伪造服务器的 laravel 5.4 应用程序。我正在数据库驱动程序上运行队列工作器,使用主管进行监视,如文档中所述进行设置;

command=php /home/data/app/current/artisan queue:work --sleep=3 --tries=3
Run Code Online (Sandbox Code Playgroud)

并使用 envoyer 部署挂钩

cd ~/app/current
php artisan queue:restart
Run Code Online (Sandbox Code Playgroud)

问题是,在每次部署后,队列工作人员没有重新启动,旧的工作人员继续运行,然后抛出错误,因为他们正在处理以前版本的代码。运行队列:从 CLI 手动重启也不起作用。

data@medicone:~/ccpbase/current$ ps -aux | grep queue:work
data      4347  0.0  0.2 292988 34852 ?        S    11:12   0:00 php /home/data/ccpbase/current/artisan queue:work --sleep=3 --tries=3
data      4348  0.0  0.2 292988 34864 ?        S    11:12   0:00 php /home/data/ccpbase/current/artisan queue:work --sleep=3 --tries=3
data      4349  0.0  0.2 292988 34720 ?        S    11:12   0:00 php /home/data/ccpbase/current/artisan queue:work --sleep=3 --tries=3
data      4350  0.0  0.2 292988 34880 ? …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-queue laravel-artisan

8
推荐指数
2
解决办法
1万
查看次数

Laravel数据库队列,几秒钟后"被杀"

我在Laravel项目中遇到了问题,我正在尝试使用FFMPEG 转换大小为450MB 的视频文件,因为这需要很长时间才能在Laravel中使用Queues来执行此操作.

由于我的生产环境的配置,我必须使用数据库队列,问题是每次php artisan queue:work在我的Vagrant框中使用命令时,每次大约60秒后排队的作业被杀死.

Vagrant盒子有4GB Ram可用,支持2D和3D加速,memory_peak_usage()在整个过程中命令永远不会列出20MB以上的任何东西.

我按照预期检查了php_sapi_name()它和它的cli,所以当涉及到执行时间时它应该没有任何限制,不管我去了cli php.ini文件并再次删除任何限制以确定.

尝试重新启动Vagrant,几秒钟之后就被杀死了.

所以我决定尝试为转码过程创建一个Laravel 命令,我硬编码文件路径和东西,并且看到它正在工作而不被杀死 ...

我错过了关于队列的一些事情吗?我正在运行php artisan queue:work我没有指定任何类型的超时,为什么我的队列被杀?

预先感谢您的帮助.

php vagrant laravel-5 laravel-queue

8
推荐指数
1
解决办法
3636
查看次数

Laravel 队列和作业 - 如何稍后重新运行失败的作业

先感谢您

我的问题很简单

例如,我创建了一项向用户发送电子邮件的作业。然而,由于某些语法错误或任何其他异常,它失败了,因此 Laravel 会将此作业视为failed_jobs数据库表中的失败作业,稍后,举个例子,2 天后我在代码中发现了问题并解决了它,现在我想再次重新运行那个失败的作业,以便我的任务可以完成

有什么方法可以做到这一点?

laravel laravel-queue laravel-jobs

8
推荐指数
3
解决办法
2万
查看次数