php-resque-scheduler и resque-web интерфейс URI :: InvalidURIError at / delayed

0

Я использую Chris Boulton php port resque (php-resque) и resque-scheduler (php-resque-scheduler), я также использую стандартный интерфейс resque-web для просмотра заданий/очередей и т.д.

У меня не было проблем с resque-web, пока я недавно не установил реск-планировщик и не установил конфигурацию для resque-web в соответствии с инструкциями здесь.

Использование php-resque-scheduler У меня нет никаких проблем (похоже), когда планируются мои очереди для задержки, однако, когда я вхожу в resque-web и нажимаю вкладку "delayed", я получаю следующую ошибку:

URI :: InvalidURIError at/delayed bad URI (не URI?): /Delayed/jobs/Namespace\Of\Job\Class? Args = [% 7B% 22

Я получаю эту ошибку только после того, как задание было отложено.

Я чувствую, что пространство имен класса PHP ломает что-то с маршрутизацией resque-web. Я немного тупой, поскольку я не очень хорошо знаком с Ruby и не увлекаюсь редактированием файлов пакетов и т.д.

Я запускаю ruby 1.9.1, на Ubuntu Trusty 14.04, если это помогает. Выполнение resque-web -v дает мне:

стойка 1.2

синатра 1.4.5

Вегас 0.1.11

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

UPDATE: я пробовал накладывать класс на задание и передавать класс с псевдонимом, и это не нарушает интерфейс, поэтому я считаю свое первоначальное предположение правильным. Это не решение, а работоспособное.

Теги:
resque
resque-scheduler

2 ответа

1
Лучший ответ

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

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

У меня тоже есть эта проблема, причина в том, что resque-web пытается получить URI имени класса, но у вашего имени класса есть обратная косая черта, из-за пространства имен PHP, поэтому Ruby сказал "Bad URI", точка Ruby не помогла нас, чтобы избежать ури.

Я не знаком с Ruby/Rails, я просто пытаюсь интегрировать resque в php, поэтому мне нужен веб-монитор, чтобы посмотреть мой статус очереди/вакансий

Итак, вот мое обходное решение для решения этой проблемы, просто для справки, я знаю, что это не лучший способ.

Попробуйте изменить представление реск-планировщика в ресурсе драгоценных камней

// 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="

Это

Ещё вопросы

Сообщество Overcoder
Наверх
Меню