diff options
author | Cory Gwin @gwincr11 <gwincr11@github.com> | 2019-02-12 12:49:12 -0500 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2019-02-13 19:20:41 -0500 |
commit | 31021c780f346002beabff3fa2e4869556e32c3c (patch) | |
tree | d7767e8f7269419b5f13c8666d8e0de4863abdc1 /activejob/test/cases | |
parent | 840f55567191c96bdf4250a339759dbb532d351e (diff) | |
download | rails-31021c780f346002beabff3fa2e4869556e32c3c.tar.gz rails-31021c780f346002beabff3fa2e4869556e32c3c.tar.bz2 rails-31021c780f346002beabff3fa2e4869556e32c3c.zip |
Adding enque time tracking and logging
Motivation:
- Currently we have 2 seperate monkey patches in place for tracking
enqueded time for 2 seperate workers. It seems that activejob could be
a source of truth for how long an item has been enqued so that we can
easily use it for consistent monitoring across workers/apps to ensure
that jobs are running at an acceptable speed.
Changes:
- Add an enqueded at attribute and serilization tooling.
- Add a method to get how long a job has been enqueded for.
- Add a logging item to show how long a job was enqued prior to the
perform method firing.
Diffstat (limited to 'activejob/test/cases')
-rw-r--r-- | activejob/test/cases/job_serialization_test.rb | 11 | ||||
-rw-r--r-- | activejob/test/cases/logging_test.rb | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/activejob/test/cases/job_serialization_test.rb b/activejob/test/cases/job_serialization_test.rb index 86f3651564..c1cec1f1d6 100644 --- a/activejob/test/cases/job_serialization_test.rb +++ b/activejob/test/cases/job_serialization_test.rb @@ -61,4 +61,15 @@ class JobSerializationTest < ActiveSupport::TestCase assert_equal "Hawaii", job.serialize["timezone"] end end + + test "serialize stores the enqueued_at time" do + h1 = HelloJob.new + type = h1.serialize["enqueued_at"].class + assert_equal String, type + + h2 = HelloJob.deserialize(h1.serialize) + # We should be able to parse a timestamp + type = Time.parse(h2.enqueued_at).class + assert_equal Time, type + end end diff --git a/activejob/test/cases/logging_test.rb b/activejob/test/cases/logging_test.rb index 6154ba301d..acd37456c9 100644 --- a/activejob/test/cases/logging_test.rb +++ b/activejob/test/cases/logging_test.rb @@ -115,6 +115,8 @@ class LoggingTest < ActiveSupport::TestCase perform_enqueued_jobs do LoggingJob.perform_later "Dummy" assert_match(/Performing LoggingJob \(Job ID: .*?\) from .*? with arguments:.*Dummy/, @logger.messages) + + assert_match(/enqueued at /, @logger.messages) assert_match(/Dummy, here is it: Dummy/, @logger.messages) assert_match(/Performed LoggingJob \(Job ID: .*?\) from .*? in .*ms/, @logger.messages) end |