I don’t believe we need the Psych patch anymore because Sidekiq 5 guarantees that jobs are executed within Rails::Executor so classes should load as normal. This was not the case back in early 4.2.x, 4.2.0, 4.2.1, etc.
* Extract Processor#log_context to ease extending what's logged
This was previously exposed in JobLogger and Middleware::Server::Logging
but was inlined into Processor.
701e06224c
Useful, e.g. in this case:
https://github.com/mperham/sidekiq/issues/1786
* Move job hash context logic into Sidekiq::Logging
* Add test case for sv locale
* Use Rack::Utils to parse locale header
* Take "q" value into account
* Make '*' match the default locale.
* Add test for available_locales
* Correct test case sv -> en
* Add missing test cases for Safari requests
* Add missing require needed to run a single test file
* Reimplement WebHelpers#locale to handle regions in header
Implementation inspired by:
https://github.com/iain/http_accept_language/blob/master/lib/http_accept_language/parser.rb
Also see:
https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4
* Add docs and references
* Add failing test cases for pt-br, pt-pt, pt (examples taken from Chrome & Safari)
* Add more test cases for Mac + Chrome + UK English + US English
* Make test cases for 'pt-PT,pt;q=0.8,en-US;q=0.6,en;q=0.4' and 'pt-pt' pass
* Make special case 'ru,en' work (equal qvalues)
Sidekiq will better handle jobs with malformed payloads. Any job which raises a JSON::ParserError will immediately move to the Dead set. Update the API to degrade gracefully when trying to render bad JSON in the queue, scheduled or dead. These payloads are most often from other languages where the JSON is being pieced together manually and pushed to Redis.
* Unminify rickshaw graph CSS so we can maintain it
* Initial BiDi support for the Web UI
BiDi means the web app can serve both LTR and RTL languages at the same time.
1. Bootstrap-RTL overrides Bootstrap 3.3 styles for RTL clients
2. Application CSS was preprocessed thru rtlcss and then hand-trimmed to contain only RTL-specific directives.
3. Dashboard was tweaked to hardcode LTR for footer and polling gadget
* Vendor bootstrap-rtl.css
* Various RTL style fixes, need to flip all pull-* elements
* Upgrade Rickshaw to latest, remove dupe CSS
* Add Arabic language (credit to Milena Novakova)
Add Hebrew placeholder
Added dir attribute to html tag
* changes
* Clean up HTTP header generation, add Content-Language response header
* Use correct locale for hebrew
In #2531, we saw how an IO exception in the logger could cause a job to fail and be deleted before it reached the RetryJobs block, causing job loss. To fix this, we disabled job acknowledgement until job execution starts but this has the bad side effect of duplicating jobs if the user is running a reliable scheme and the error happens after the RetryJobs middleware but before execution starts.
Instead we flip the middleware ordering; logging now happens within the retry block. We would lose context-specific logging within retry so we move the context log setup out of the middleware into the Processor. With these changes, we can properly retry and acknowledge even if there are errors within the initial server middleware and executor calls.
This code path has been reimplemented in Sidekiq 5.0 so this change only applies to 4.x.