Я пытаюсь ставить задачи для Python RQ с помощью JavaScript. Для этого я просто контролировал, что RQ делает с Redis. В частности, он хранит маринованный список, указывающий, где найти задачу для запуска, включая входные аргументы и т. Д. Здесь я использую пример, найденный на домашней странице RQ. При хранении следующей строки (маринованный список):Python RQ queueing with JavaScript
'\x80\x02(X\x1c\x00\x00\x00my_module.count_words_at_urlq\x01NU\x0fhttp://nvie.comq\x02\x85q\x03}q\x04tq\x05.'
с JavaScript, он делает что-то странное с литералами \x80
и \x85
. Он заменяет их \xc2\x80
и \xc2\x85
, и я не могу понять, почему и как остановить это поведение. Остальная часть строки попадает в Redis, как и ожидалось. Дополнительный литерал препятствует правильному функционированию rqworker, более конкретно рассолнечному.
> encodeURI('\x80\x02(X\x1c\x00\x00\x00my_module.count_words_at_urlq\x01NU\x0fhttp://nvie.comq\x02\x85q\x03}q\x04tq\x05.')
'%C2%80%02(X%1C%00%00%00my_module.count_words_at_urlq%01NU%0Fhttp://nvie.comq%02%C2%85q%03%7Dq%04tq%05.'
> decodeURI('\x80\x02(X\x1c\x00\x00\x00my_module.count_words_at_urlq\x01NU\x0fhttp://nvie.comq\x02\x85q\x03}q\x04tq\x05.')
' \u0002(X\u001c\u0000\u0000\u0000my_module.count_words_at_urlq\u0001NU\u000fhttp://nvie.comq \u0002q\u0003}q\u0004tq\u0005.'
Я использую node и node_redis.