Symfony Messenger — Как убить работающего работника?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Symfony Messenger — Как убить работающего работника?

Сообщение Anonymous »

У меня есть сайт Symfony 6, работающий на машине Ubuntu с сервером Apache2.
На этом сайте пользователи могут запускать долго выполняющиеся задачи. Я использую Symfony Messenger для асинхронного запуска этих задач в фоновом режиме, в то время как пользователь может делать другие вещи на сайте. Когда задача выполнена, они уведомляются о результатах. Я использую Supervisor, чтобы сохранить несколько рабочих (

Код: Выделить всё

messenger:consume
процессы), работающие в любое время и готовые выполнить эти задачи.
Пользователи могут отменить свои задачи досрочно. Обычно это происходит, когда они понимают, что допустили ошибку при выполнении задачи, и хотят ее исправить. Проблема в том, что я не знаю, как заставить сервер отменить текущего работника. Единственный способ, который я могу придумать, чтобы убить работающего работника, — это вызвать команду supervisctl, чтобы остановить или перезапустить процесс. Но я не могу найти в Symfony способ точно определить, какой работник обрабатывает данную задачу.
Мое текущее решение — игнорировать старую задачу и запустить новую для обработки новый запрос пользователя. Затем старая задача продолжает работать в фоновом режиме до тех пор, пока не завершится. Очевидно, что это огромная трата ресурсов сервера. Иногда пользователи отменяют и перезапускают задачу несколько раз подряд, что приводит к тому, что группа работников тратит ресурсы без уважительной причины.
Должен быть лучший способ. Что мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/792 ... n-progress
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Symfony Messenger — Как убить работающего работника?
    Anonymous » » в форуме Php
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Обновления фонового работника не удаляют исходного работника. (Android Studio — Jetpack Compose/Kotlin)
    Anonymous » » в форуме Android
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Непознанный вариант:-Ошибка работника при создании работника подпроцесса
    Anonymous » » в форуме JAVA
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Непознанный вариант:-Ошибка работника при создании работника подпроцесса
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Непознанный вариант:-Ошибка работника при создании работника подпроцесса
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

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