Ларавельские занятия отправляются только один раз наPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Ларавельские занятия отправляются только один раз на

Сообщение Anonymous »

у меня возникла проблема с отправкой рабочих мест на Ларавеле 9.4.1 с PHP 8.1.3. Я написал несколько заданий, которые имеют свою очередь (импорт-Мет), но работают через подключение базы данных. Когда я строю свое приложение-среда (Docker-Compose с DB-контентером и некоторыми работниками-контентаторами), и я называю Myjob :: Dispatch (Some Stuck), это хорошо отправляет работы ... но только один раз. Каждый отправляемый вызов после первоначального (тот, который после сборки), кажется, игнорируется, поскольку я получаю обратно освещение \ Foundation \ Bus \ Pendispatch-Object, но у него есть работа: NULL, и работа не хранится внутри столичного стола. Само связано с базой данных в порядке (проверяется, вызывая и записывая в модель раньше). Журналы пусты, не удалось, а также стоет, и у меня нет представлений о том, что там происходит. Но я не на 100% уверен, является ли это образец пользователя или фактически сама Laravel-Bug ... < /p>
Редактировать: Как отметил Лучано, был бы полезен какой-то код. Итак, вот и мы:
Это одна из моих заданий (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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»