aboutsummaryrefslogtreecommitdiffstats
path: root/activejob/test/jobs
Commit message (Collapse)AuthorAgeFilesLines
* Rewrite ActiveJob exception tests so it runs with the real adaptersRosa Gutierrez2019-01-081-1/+7
| | | | | | | | | Previously, by extending ActiveJob::TestCase, the test adapter provided for tests was being used always, in all executions where supposedly different adapters were being used. As a consequence, some bugs visible only for some adapters might have gone undetected. This commit changes that, skipping queue adapters for which we can't test scheduling jobs with a delay.
* Support in-flight jobs stored before individual execution counters for ↵Rosa Gutierrez2019-01-051-11/+3
| | | | | | | | | | | | | | | | | | | | `retry_on` (#34731) Also, make tests and examples for individual execution counters clearer, as it wasn't entierly clear what would happen in this case: ``` retry_on CustomException, OtherException, attempts: 3 ``` The job would be retried at most 3 times in total, for both CustomException and OtherException. To have the job retry 3 times at most for each exception individually, the following retry_on declarations are necessary: ``` retry_on CustomException, attempts: 3 retry_on OtherException, attempts: 3 ```
* Merge pull request #33992 from kirs/enqueue-return-falseRafael França2018-12-051-0/+9
|\ | | | | Make AJ::Base#enqueue return false if the job wasn't enqueued
| * Make AJ::Base#enqueue return false if the job wasn't enqueuedKir Shatrov2018-10-281-0/+9
| |
* | Keep executions for each specific exception (#34352)Alberto Almagro2018-11-231-0/+9
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Keep executions for each specific declaration Fixes #34337 ActiveJob used the global executions counter to control the number of times a job should be retried. The problem with this approach was that in case a job raised different exceptions during its executions they weren't retried the number of times defined by their `attemps` number. **Example:** Having the following job: ```ruby class BuggyJob < ActiveJob::Base retry_on CustomException, attemps: 3 retry_on OtherException, attempts: 3 end ``` If the job raised `CustomException` in the first two executions and then it raised `OtherException`, the job wasn't retried anymore because the global executions counter was already indicating 3 attempts. With this patch each `retry_on` declaration has its specific counter so that the first two executions that raise `CustomException` don't affect the retries count that future exceptions may have. * Revert "clarifies documentation around the attempts arugment to retry_on" This reverts commit 86aa8f8c5631f77ed9a208e5107003c01512133e.
* Make `assert_<enqueued|performed>_with()` compare hashes ignoring order of keysSharang Dashputre2018-09-211-0/+9
| | | | The test helpers now treat `{ a: 1, b: 2 }` and `{ b: 2, a: 1 }` as equals
* Increment execution count before deserialize argumentsyuuji.yaginuma2018-08-181-0/+1
| | | | | | | | Currently, the execution count increments after deserializes arguments. Therefore, if an error occurs with deserialize, it retries indefinitely. In order to prevent this, the count is moved before deserialize. Fixes #33344.
* Allow passing multiple exceptions to retry_on/discard_onGeorge Claghorn2018-06-251-0/+7
|
* Rename exception variable to error.Kasper Timm Hansen2018-05-211-2/+2
| | | | Follows the change from 6fac9bd, so the naming is consistent.
* Pass the error instance as the second parameter of block executed by ↵yuuji.yaginuma2018-05-121-1/+1
| | | | | | | | | | | `discard_on` I'm not sure what originally wanted to pass to the argument. However, as long as see the document added along with the commit, it seems just to be mistaken that trying to pass the error instance. https://github.com/rails/rails/pull/30622/files#diff-59beb0189c8c6bc862edf7fdb84ff5a7R64 Fixes #32853
* Add support for timezones to Active JobAndrew White2018-02-221-0/+22
| | | | | | Record what was the current timezone in effect when the job was enqueued and then restore when the job is executed in same way that the current locale is recorded and restored.
* Merge branch 'master' into custom-discarded-job-handlingAidan Haran2017-12-091-1/+1
|\
| * Test exception message to ensure an exception instance is yieldedKazunori Kajihiro2017-10-131-1/+1
| |
* | Allow for custom handling of exceptions that are discardedAidan Haran2017-09-161-0/+2
|/
* [Active Job] `rubocop -a --only Layout/EmptyLineAfterMagicComment`Koichi ITO2017-07-1115-0/+15
|
* Use frozen-string-literal in ActiveJobKir Shatrov2017-07-0915-0/+15
|
* Revert "Merge pull request #29540 from kirs/rubocop-frozen-string"Matthew Draper2017-07-0215-15/+0
| | | | | This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
* Enforce frozen string in RubocopKir Shatrov2017-07-0115-0/+15
|
* Add error logging to Active JobSteven Bull2017-03-271-1/+1
| | | | | | | | | | | | | | | | | | | | 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.
* correctly set test adapter when configure the queue adapter on a per job ↵Yuji Yaginuma2017-01-311-0/+3
| | | | | | | | | | | | (#26690) The `ActiveJob::TestHelper` replace the adapter to test adapter in `before_setup`. It gets the target class using the `descendants`, but if the test target job class is not loaded, will not be a replacement of the adapter. Therefore, instead of replacing with `before_setup`, modified to replace when setting adapter. Fixes #26360
* remove useless importSnowmanzzz(Zhengzhong Zhao)2016-12-301-2/+0
|
* use `descendants` to get class that inherited `ActiveJob::Base`yuuji.yaginuma2016-09-052-0/+9
| | | | | | `subclasses` get only child classes. Therefore, if create a job common parent class as `ApplicationJob`, inherited class does not get properly.
* Yield the job instance so you have access to things like `job.arguments` on ↵David Heinemeier Hansson2016-08-161-1/+1
| | | | the custom logic after retries fail
* Add `Style/EmptyLines` in `.rubocop.yml` and remove extra empty linesRyuta Kamizono2016-08-071-1/+0
|
* applies remaining conventions across the projectXavier Noria2016-08-061-1/+0
|
* normalizes indentation and whitespace across the projectXavier Noria2016-08-063-3/+0
|
* applies new string literal convention in activejob/testXavier Noria2016-08-068-13/+13
| | | | | The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
* Fix tests against ActiveSupport::DurationsDavid Heinemeier Hansson2016-08-021-0/+2
|
* Allow for custom handling of exceptions that persist beyond the retry attemptsDavid Heinemeier Hansson2016-08-011-0/+2
|
* Add exponentially_longer and custom wait algorithmsDavid Heinemeier Hansson2016-08-011-0/+4
|
* Use descriptive exception namesDavid Heinemeier Hansson2016-08-011-6/+6
|
* Add retry_on/discard_on for better exception handlingDavid Heinemeier Hansson2016-07-291-0/+21
|
* Fix accessing provider_job_id inside active jobs for sidekiq adapterAzzurrio2016-07-281-0/+7
|
* Fix jobs overriding AJ::Base#loggerJean Boussier2016-06-171-0/+9
|
* Deprecate exception#original_exception in favor of exception#causeYuki Nishijima2015-11-031-1/+1
|
* Initial implementation of ActiveJob AsyncAdapter.Jerry D'Antonio2015-08-251-0/+10
|
* Fixes #20799Johannes Opper2015-08-041-0/+10
| | | | | | | | | | | | | | | | | | | | | | When `#perform_later` is called the locale isn't stored on the queue, which results in a locale reset when the job is performed. An example of the problem: I18n.locale = 'de' HelloJob.perform_now # german message, correct but I18n.locale = 'de' HelloJob.perform_later # english message, incorrect This PR attaches the current I18n.locale to every job during the serialization process. It is then restored during deserialization and used to perform the job with the correct locale. It falls back to the default locale if no serialized locale is found in order to provide backward compatibility with previously stored jobs. It is not necessary to clear the queue for the update.
* Allow keyword arguments to work with ActiveJobSean Griffin2015-01-301-0/+7
| | | | | | | | | | | | | | | | | Unfortunately, the HashWithIndifferent access approach is insufficient for our needs. It's perfectly reasonable to want to use keyword arguments with Active Job, which we will see as a symbol keyed hash. For Ruby to convert this back to keyword arguments, it must deserialize to a symbol keyed hash. There are two primary changes to the serialization behavior. We first treat a HWIA separately, and mark it as such so we can convert it back into a HWIA during deserialization. For normal hashes, we keep a list of all symbol keys, and convert them back to symbol keys after deserialization. Fixes #18741.
* - Inline AJ around_perform and around_enqueue in CallbackJob used for tests.Vipul A M2014-10-211-16/+13
|
* Active Job refactoringCristian Bica2014-09-032-2/+2
|
* [ActiveJob] extract JobBuffer from helperAbdelkader Boudih2014-08-293-0/+6
|
* [ActiveJob] raise DeserializationError when got an error deserializingCristian Bica2014-08-171-0/+5
|
* [ActiveJob] Fix tests for sucker_punchAbdelkader Boudih2014-08-173-4/+4
|
* Moved AR testing from using global variable to thread variableCristian Bica2014-08-163-5/+5
|
* Add 'activejob/' from commit '14f74a8331f94150dfee653224de8fc837797709'Abdelkader Boudih2014-08-126-0/+83
git-subtree-dir: activejob git-subtree-mainline: b45b99894a60eda434abec94d133a1cfd8de2dda git-subtree-split: 14f74a8331f94150dfee653224de8fc837797709