Viewing file: AppServiceProvider.php (1.79 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Providers;
use App\Models\Message; use Illuminate\Queue\Events\JobFailed; use Illuminate\Support\Facades\Schema; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Queue; use Illuminate\Queue\Events\JobProcessed; use Illuminate\Queue\Events\JobProcessing; use Illuminate\Support\Facades\Log;
class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { // }
/** * Bootstrap any application services. * * @return void */ public function boot() { Schema::defaultStringLength(191);
Queue::after(function (JobProcessed $event) { if (!$event->job->hasFailed()) { $payload = $event->job->payload(); $data = unserialize($payload['data']['command']); if (isset($data->data)) { foreach ($data->data as $message) { if (isset($message->message_id)) { Message::where('id', $message->message_id)->update(['status' => 'succeed', 'delivered_at' => now()]); } } } } });
Queue::failing(function (JobFailed $event){ $payload = $event->job->payload(); $data = unserialize($payload['data']['command']); if (isset($data->data)) { foreach ($data->data as $message) { if (isset($message->message_id)) { Message::where('id', $message->message_id)->update(['status' => 'failed', 'failed_reason' => substr($event->exception->getMessage(),0,191)]); } } } }); } }
|