Я использую PHP-порт Resque Криса Боултона (php-resque) и планировщик resque (PHP-спасательный-планировщик), Я также использую стандартный интерфейс Resque-Web для просмотра заданий / очередей и т. Д.
У меня не было проблем с resque-web, пока я недавно не установил resque-scheduler и не настроил конфигурацию для resque-web согласно инструкциям Вот.
С помощью php-resque-scheduler у меня нет проблем (кажется) с планированием отложенных очередей, однако, когда я вхожу в resque-web и нажимаю вкладку «задерживается», я получаю следующую ошибку:
URI :: InvalidURIError at / delayed
неверный URI (не URI?): / отложено / jobs / пространство имен \ Of \ Job \ Class? args = [% 7B% 22
Я получаю эту ошибку только после того, как задание было отложено.
У меня такое ощущение, что пространство имен класса PHP что-то ломает с помощью веб-маршрутизации resque. Я немного озадачен, так как я не очень хорошо знаком с Ruby и не заинтересован в редактировании файлов пакетов и т. Д.
Я использую ruby 1.9.1 на Ubuntu Trusty 14.04, если это поможет. дела resque-web -v
дает мне:
стойка 1.2
Синатра 1.4.5
Вегас 0.1.11
Любая помощь по этому вопросу будет высоко ценится!
ОБНОВЛЕНИЕ: я попытался наложить псевдоним класса для задания и пропустить псевдоним класса, и это не нарушает интерфейс, поэтому я считаю свое первоначальное предположение правильным. Это не совсем решение, но работоспособное.
Моим решением было создать псевдоним класса в php и передать псевдоним на работу:
class_alias('My\NameSpaced\Class', 'My_NameSpaced\Class');
У меня тоже есть эта проблема, причина в том, что resque-web пытается получить URI имени класса, но имя вашего класса имеет обратную косую черту, это из-за пространства имен PHP, поэтому ruby сказал «Bad URI», суть в том, что ruby не помог нам побег Ури.
Я не знаком с Ruby / Rails, я просто пытаюсь интегрировать resque в php, поэтому мне просто нужен веб-монитор для просмотра моего состояния очереди / заданий
Итак, вот мой обходной путь, чтобы решить эту проблему, просто для справки, я знаю, что это не лучший способ.
Попробуйте изменить представление Resque-Scheduler в ресурсе Gem
// find your resque-scheduler gem path and modify the delayed.erb file
vim ~/.gem/ruby/2.0/gems/resque-scheduler-4.0.0/lib/resque/scheduler/server/views/delayed.erb
// search this line
URI("/delayed/jobs/#{job['class']}?args="
// modify to
URI.escape("/delayed/jobs/#{job['class']}?args="
это оно