aboutsummaryrefslogtreecommitdiffstats
path: root/activejob/lib
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #32026 from bogdanvlviv/improve-30941Rafael França2018-02-203-24/+47
|\ | | | | Improve ActiveJob custom argument serializers #30941
| * Fix error message about unknown `ActiveJob` argument serializerbogdanvlviv2018-02-171-1/+1
| |
| * Fix docs of ActiveJob custom argument serializersbogdanvlviv2018-02-172-22/+22
| | | | | | | | | | | | Add `:nodoc:` to `ActiveJob::Serializers` Add `:doc:` to `ActiveJob::Serializers::ObjectSerializer#klass` Express `ActiveJob::Serializers::ObjectSerializer#klass` as private method
| * Add argument serializer `TimeWithZoneSerializer`bogdanvlviv2018-02-172-1/+24
| | | | | | | | | | The serializer serializes an instance of `ActiveSupport::TimeWithZone`. The serializer deserializes value to `ActiveSupport::TimeWithZone` if possible.
* | Rails 6 requires Ruby 2.4.1+Jeremy Daer2018-02-172-4/+2
|/ | | | | | Skipping over 2.4.0 to sidestep the `"symbol_from_string".to_sym.dup` bug. References #32028
* Fix custome serializer settingYuji Yaginuma2018-02-162-4/+9
| | | | | | | | The serializer should be set up in `after_initialize` so that it work properly even if the user specifies serializer with initializers. Also, since `custom_serializers` is `Array`, it needs to be flattened before setting the value.
* Simplify the implementation of custom argument serializersRafael Mendonça França2018-02-1410-272/+172
| | | | | | | | | | | | | We can speed up things for the supported types by keeping the code in the way it was. We can also avoid to loop trough all serializers in the deserialization by trying to access the class already in the Hash. We could also speed up the custom serialization if we define the class that is going to be serialized when registering the serializers, but that will remove the possibility of defining a serialzer for a superclass and have the subclass serialized using it.
* Improve documentation on custom serializersRafael Mendonça França2018-02-142-0/+25
|
* Add configuration to set custom serializersRafael Mendonça França2018-02-141-0/+6
|
* No need to require a autoloaded constantRafael Mendonça França2018-02-141-1/+0
|
* Add serializers for Time, Date and DateTimeRafael Mendonça França2018-02-146-1/+74
|
* Allow serializers to be used either as classes or objectsRafael Mendonça França2018-02-149-115/+103
|
* Add symbol and duration serializersRafael Mendonça França2018-02-143-1/+50
|
* Only add one more custom key in the serialized hashRafael Mendonça França2018-02-145-43/+36
| | | | | | | Now custom serialziers can register itself in the serialized hash using the "_aj_serialized" key that constains the serializer name. This way we can avoid poluting the hash with many reserved keys.
* Define the interface of a SerializerRafael Mendonça França2018-02-141-0/+18
|
* Remove unnecessary qualified constant lookupsRafael Mendonça França2018-02-145-11/+11
|
* Simplify the implementation of custom serialziersRafael Mendonça França2018-02-142-36/+28
| | | | | Right now it is only possible to define serializers globally so we don't need to use a class attribute in the job class.
* Remove non-default serializersEvgenii Pecherkin2018-02-146-148/+7
|
* Introduce serializers to ActiveJobEvgenii Pecherkin2018-02-1416-131/+470
|
* Start Rails 6.0 development!!!Rafael Mendonça França2018-01-301-3/+3
| | | | :tada::tada::tada:
* Merge pull request #30622 from aidanharan/custom-discarded-job-handlingRafael França2018-01-231-1/+11
|\ | | | | Allow for custom handling of exceptions that are discarded
| * Merge branch 'master' into custom-discarded-job-handlingAidan Haran2017-12-0910-19/+29
| |\
| * | Allow for custom handling of exceptions that are discardedAidan Haran2017-09-161-1/+11
| | |
* | | Consolidate `queue_adapter=` and `interpret_adapter`Ryuta Kamizono2018-01-051-18/+12
| | | | | | | | | | | | | | | Since #25037, `queue_adapter=` simply delegates to `interpret_adapter` only.
* | | Bump license years for 2018Yoshiyuki Hirano2017-12-311-1/+1
| | |
* | | [ci skip] Add a space to comment in SidekiqAdapterYoshiyuki Hirano2017-12-141-1/+1
| |/ |/| | | | | | | * I think it's better to have a leading space after the `#` denoting the start of the comment.
* | Fix example code in ActiveJob::Core [ci skip]Yoshiyuki Hirano2017-12-051-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) It seems that it raise error on example code in `ActiveJob::Core`. Before: ```ruby class DeliverWebhookJob < ActiveJob::Base def serialize super.merge('attempt_number' => (@attempt_number || 0) + 1) end def deserialize(job_data) super @attempt_number = job_data['attempt_number'] end rescue_from(Timeout::Error) do |exception| raise exception if @attempt_number > 5 retry_job(wait: 10) end def perform raise Timeout::Error end end ``` Then it run `DeliverWebhookJob.perform_now` in `rails console`. And raise error: NoMethodError: undefined method `>' for nil:NilClass from /app/jobs/deliver_webhook_job.rb:12:in `block in <class:DeliverWebhookJob>' So I thought it's necessary to fix it. After: ```ruby class DeliverWebhookJob < ActiveJob::Base attr_writer :attempt_number def attempt_number @attempt_number ||= 0 end def serialize super.merge('attempt_number' => attempt_number + 1) end def deserialize(job_data) super self.attempt_number = job_data['attempt_number'] end rescue_from(Timeout::Error) do |exception| raise exception if attempt_number > 5 retry_job(wait: 10) end def perform raise Timeout::Error end end ``` Then it run `DeliverWebhookJob.perform_now` in `rails console`. And it does'nt raise error NoMethodError. 2) Use `Timeout::Error` instead of `TimeoutError` (`TimeoutError` is deprecated).
* | Preparing for 5.2.0.beta2 releaseRafael Mendonça França2017-11-281-1/+1
| |
* | Preparing for 5.2.0.beta1 releaseRafael Mendonça França2017-11-271-1/+1
| |
* | Improve DelayedJob wrapper loggingJacek Lachowski2017-11-241-0/+4
| | | | | | | | | | | | | | | | ActiveJob wraps every adapter into its own class, that is later passed into DelayedJob which is responsible for displaying all the logs. This change improves the logging so we can easily trace executed jobs and see meaningful information in the logs.
* | Use .tt extension to all the template filesRafael Mendonça França2017-11-132-0/+0
| | | | | | | | | | | | | | | | Make clear that the files are not to be run for interpreters. Fixes #23847. Fixes #30690. Closes #23878.
* | [Active Job] require_relative => requireAkira Matsuda2017-10-214-13/+13
| | | | | | | | This basically reverts fef234f1f0a238c2277459652861144ae89501ff
* | Yield with an error instance instead of error classKazunori Kajihiro2017-09-291-1/+1
|/
* Update activejob doc [ci skip]Yoshiyuki Hirano2017-08-301-1/+1
|
* Use ssl in guide and comment [ci skip]Yoshiyuki Hirano2017-08-191-1/+1
|
* Use `ArgumentError` instead of own error classyuuji.yaginuma2017-07-201-2/+1
| | | | | If the argument is invalid, I think that it is more intuitive to use `ArgumentError` than its own error class.
* Fix `warning: circular argument reference`yuuji.yaginuma2017-07-191-2/+2
| | | | | | | | | This fixes the following warnings: ``` rails/activejob/lib/active_job/test_helper.rb:119: warning: circular argument reference - except rails/activejob/lib/active_job/test_helper.rb:166: warning: circular argument reference - except ```
* Add `except` option for ActiveJob::TestHelper methodsposthumanism2017-07-182-15/+81
|
* [Active Job] `rubocop -a --only Layout/EmptyLineAfterMagicComment`Koichi ITO2017-07-1133-0/+33
|
* Use frozen-string-literal in ActiveJobKir Shatrov2017-07-0933-0/+33
|
* [Active Job] require => require_relativeAkira Matsuda2017-07-014-13/+13
|
* ActiveJob::Core#serialize stores provider_job_id (fixes #26581).utilum2017-06-271-0/+1
|
* Use mattr_accessor default: option throughout the projectGenadi Samokovarov2017-06-033-4/+4
|
* Add option for class_attribute default (#29270)David Heinemeier Hansson2017-05-292-8/+3
| | | | | | | | | | | | * Allow a default value to be declared for class_attribute * Convert to using class_attribute default rather than explicit setter * Removed instance_accessor option by mistake * False is a valid default value * Documentation
* Removed string inquiry.Mohit Natoo2017-05-261-4/+4
| | | | | | fixed indentation. rebased with master.
* Provides friendlier way to access queue adapters of a job.Mohit Natoo2017-05-261-3/+16
| | | | - removed predicate method. Used only reader.
* Define path with __dir__bogdanvlviv2017-05-231-1/+1
| | | | | | ".. with __dir__ we can restore order in the Universe." - by @fxn Related to 5b8738c2df003a96f0e490c43559747618d10f5f
* Improving docs for callbacks execution order [ci skip]dixpac2017-05-211-1/+3
| | | | | When define callbacks latest definition on the same callback/method overwrites previous ones.
* Add error logging to Active JobSteven Bull2017-03-271-3/+10
| | | | | | | | | | | | | | | | | | | | Active Job logging instrumentation is changed to log errors (with backtrace) when a job raises an exception in #perform. This improves debugging during development and test with the default configuration. Prior to Rails 5, the default development configuration ran jobs with InlineAdapter, which would raise exceptions to the caller and be shown in the development log. In Rails 5, the default adapter was changed to AsyncAdapter, which would silently swallow exceptions and log a "Performed SomeJob from Async..." info message. This could be confusing to a developer, as it would seem that the job was performed successfully. This patch removes the "Performed..." info message from the log and adds an error-level "Error performing SomeJob..." log message which includes the exception backtrace for jobs that raise an exception within the #perform method. It provides this behavior for all adapters.
* Start Rails 5.2 developmentMatthew Draper2017-03-221-2/+2
|