Я только что нашел эту ошибку, когда я звоню
MyJob.perform_later(request.body.read)
с работой sidekiq active_job,
вызов request.body.read
возвращает некоторый json, я подумал, что в некоторых случаях он может содержать символы UTF-8 (т.е. символ €),
в этом случае я получаю
Encoding::UndefinedConversionError Exception: "\xE2" from ASCII-8BIT to UTF-8
Я знаю, что sidekiq советует не использовать сложные или длинные параметры задания, что было бы лучшим решением?
что я могу придумать, так это кодировать строку base64 перед передачей ее в задание (но это сделает ее еще длиннее для sidekiq, я не уверен, что это будет проблемой) или сохранить фактический текст json в таблице БД, и просто передайте заданию идентификатор новой строки. это определенно сработает, но мне кажется излишним.
какие-либо предложения?