ruby — php-resque-планировщик и URI веб-интерфейса resque :: InvalidURIError at / delayed

Я использую 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

Любая помощь по этому вопросу будет высоко ценится!

ОБНОВЛЕНИЕ: я попытался наложить псевдоним класса для задания и пропустить псевдоним класса, и это не нарушает интерфейс, поэтому я считаю свое первоначальное предположение правильным. Это не совсем решение, но работоспособное.

0

Решение

Моим решением было создать псевдоним класса в php и передать псевдоним на работу:

class_alias('My\NameSpaced\Class', 'My_NameSpaced\Class');
1

Другие решения

У меня тоже есть эта проблема, причина в том, что 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="

это оно

0

По вопросам рекламы [email protected]