laravel event 2

本文介绍如何使用PM2来管理多个应用实例,包括广播服务和队列工作进程的配置详情。通过JSON文件配置,确保应用的自动重启及错误、输出日志的正确记录。

使用event时,使用任务服务,有crontab和pm2,

pm2 start extra/etc/pm2/process_test.json



proces_test.json 中内容

{
  "apps" : [
    {
      "name"        : "broadcast_test_development",
      "script"      : "broadcast.js",
      "cwd"         : "/data0/apps/test",
      "error_file"  : "/data0/apps/test/storage/logs/pm2-broadcastserve-err.log",
      "out_file"    : "/data0/apps/test/storage/logs/pm2-broadcastserve-out.log",
      "pid_file"    : "/data0/apps/test/storage/logs/pm2-broadcastserve-pid.pid",
      "instances"   : "1",
      "exec_mode"   : "fork",
      "watch"       : false,
      "autorestart" : true,
      "env": {
        "APP_ENV": "development",
        "NODE_ENV": "development"
      },
      "env_development" : {
        "APP_ENV": "development",
        "NODE_ENV": "development"
      }
    },
    {
      "name"        : "queuework_test_development",
      "interpreter" : "/usr/bin/php",
      "script"      : "artisan",
      "args" : "queue:work --daemon --delay=0 --sleep=1 --tries=3 --env=development",
      "cwd"         : "/data0/apps/
test
", "error_file" : "/data0/apps/test/storage/logs/pm2-queuework-err.log", "out_file" : "/data0/apps/test/storage/logs/pm2-queuework-out.log", "pid_file" : "/data0/apps/test/storage/logs/pm2-queuework-pid.pid", "instances" : 2, "exec_mode" : "fork", "watch" : false, "autorestart" : true, "env": { "APP_ENV": "development", "NODE_ENV": "development" }, "env_development" : { "APP_ENV": "development", "NODE_ENV": "development" } } ]}

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
以下是一个简单的Laravel事件案例,以便更好地了解Laravel事件的使用: 1. 定义事件 在Laravel中,您可以使用`make:event` Artisan命令来创建一个事件类。例如,我们将创建一个名为`OrderShipped`的事件类: ``` php artisan make:event OrderShipped ``` 这将在`app/Events`目录中创建一个名为`OrderShipped`的事件类。 2. 定义事件发布者 事件发布者是触发事件的类。在我们的案例中,让我们假设`Order`类在订单发货时触发`OrderShipped`事件。我们可以在`Order`类中使用Laravel的`dispatch`方法来发布事件: ```php use App\Events\OrderShipped; class Order { public function ship() { // 订单发货逻辑 // 发布事件 event(new OrderShipped($this)); } } ``` 3. 定义事件订阅者 事件订阅者是响应事件的类。在我们的案例中,让我们定义一个类来记录日志并发送电子邮件: ```php namespace App\Listeners; use App\Events\OrderShipped; class SendShipmentNotification { public function handle(OrderShipped $event) { // 记录日志 Log::info('Order shipped with ID: ' . $event->order->id); // 发送电子邮件 Mail::to($event->order->customer->email)->send(new OrderShippedEmail($event->order)); } } ``` 在上面的代码中,我们定义了一个`SendShipmentNotification`类来订阅`OrderShipped`事件。当事件被触发时,`handle`方法将被调用,记录日志并发送电子邮件。 4. 注册事件订阅者 最后,我们需要在Laravel应用程序中注册事件订阅者。我们可以在`EventServiceProvider`类中使用`$listen`属性来注册订阅者: ```php namespace App\Providers; use Illuminate\Support\Facades\Event; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; class EventServiceProvider extends ServiceProvider { protected $listen = [ OrderShipped::class => [ SendShipmentNotification::class, ], ]; public function boot() { parent::boot(); } } ``` 在上面的代码中,我们将`OrderShipped`事件订阅到`SendShipmentNotification`类。这将导致`SendShipmentNotification`类在`OrderShipped`事件被触发时执行其`handle`方法。 现在,当我们在`Order`类中调用`ship`方法时,它将触发`OrderShipped`事件并导致`SendShipmentNotification`类执行其`handle`方法,记录日志并发送电子邮件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值