Initial prototype

DJ может обрабатывать задачи, исполненные в виде любого класса с методом perform. Этот метод и выполняется DelayedJob'ом.

Здесь я делаю рекурсию: ставлю в очередь задачу "повторно запустить только что выполненный код".

Проверка Sync.ready? нужна, чтобы отправка сообщения не совершалась в тот момент, когда база (задач, пользователей и т.д.) наполняется.