Rails - асинхронные задачи, разветвленные процессы, лучшие практики - PullRequest
1 голос
/ 30 марта 2010

Я использую Observer на своих занятиях. Когда одна из записей создается / обновляется, мне нужно не указывать другую услугу (через URL-вызов). Каков наилучший способ сделать это, чтобы избежать замедления моего класса? Будет ли использование драгоценного камня в виде delayed_job излишним?

В after_update () / after_create () моего Обозревателя я просто хочу запустить поток, который вызывает URL ...

Ответы [ 2 ]

2 голосов
/ 31 марта 2010

Определенно используйте поддерживаемый / принятый сообществом гем, такой как delayed_job или resque. Это на самом деле не так сложно, как вы думаете, и ваше приложение будет лучше масштабироваться.

2 голосов
/ 30 марта 2010

Если ваш уведомитель не блокирует поток, вы можете просто создать поток и выполнить уведомление там. Таким образом, ваша программа продолжит работу, пока этот поток ожидает ответа.

Конечно, вам понадобится способ справиться с неудачей. Вы могли бы попробовать три раза, и если это все еще не удается, напишите уведомление в журнал или что-то в этом роде.

Лучшее (наиболее надежное) решение - использовать очередь заданий. Таким образом, если работа не удалась сразу, вы можете проверить и повторно отправить ее на работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...