Редактировать: Как отметил Лучано, был бы полезен какой-то код. Итак, вот и мы:
Это одна из моих заданий (MyAppJobase просто имеет конструктор и некоторую инициализацию, как загрузка некоторых моделей и тому подобное): < /p>
Код: Выделить всё
class MyJob extends MyAppJobBase implements ShouldQueue, ShouldBeUnique
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
{
/**
* The number of times the job may be attempted.
*
* @var int
*/
public $tries = 3;
public function __construct(string $somepayload, int $someID)
{
parent::__construct($somepayload, $someID);
$this->onQueue('import-meta');
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
try{
// somelogic
$this->delete(); //muss immer am Ende eines Jobs stehen!
} catch (\Exception $exception){
if(env('APP_DEBUG') == true){
dd($exception);
} else {
if($this->attempts() === 3){
$this->fail($exception);
}
}
}
}
/**
* Handle a job failure.
*
* @param \Throwable $exception
* @return void
*/
public function failed(Throwable $exception)
{
//some failure-handling
}
}
< /code>
И это его, как я называю свою работу (есть несколько работ, но все следуют одной и той же схеме): < /p>
call_user_func_array($myJobModel->jobclass.'::dispatch',['somepayload' => '{}', 'someID' => 25]);
Подробнее здесь: https://stackoverflow.com/questions/714 ... ed-once-on
Мобильная версия