{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":397999989,"defaultBranch":"main","name":"delayed","ownerLogin":"smudge","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2021-08-19T16:02:43.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/83998?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1714410943.0","currentOid":""},"activityList":{"items":[{"before":"f0ba6aec2572c9032a4acd0d3405789c20079354","after":null,"ref":"refs/heads/rails-7-2","pushedAt":"2024-04-29T17:15:43.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"}},{"before":"fa132033361ed2fa8cbe3d06c43296b6a2600160","after":"f0ba6aec2572c9032a4acd0d3405789c20079354","ref":"refs/heads/rails-7-2","pushedAt":"2024-04-05T21:11:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Fix 7.2 prerelease comparsion","shortMessageHtmlLink":"Fix 7.2 prerelease comparsion"}},{"before":"2c013290aaff97e6e3063cd1bb9c94c4003f382d","after":"fa132033361ed2fa8cbe3d06c43296b6a2600160","ref":"refs/heads/rails-7-2","pushedAt":"2024-04-05T20:51:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Lint on latest Ruby (faster) and rely on Rubocop for backwards compat","shortMessageHtmlLink":"Lint on latest Ruby (faster) and rely on Rubocop for backwards compat"}},{"before":null,"after":"2c013290aaff97e6e3063cd1bb9c94c4003f382d","ref":"refs/heads/rails-7-2","pushedAt":"2024-04-05T20:38:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Guard against jobs where enqueue_after_transaction_commit is true","shortMessageHtmlLink":"Guard against jobs where enqueue_after_transaction_commit is true"}},{"before":"f2e5edc5d3f9481a9636d967d5cbe7ac191995eb","after":"77b97e9f540f0cce849de4c9665f9963d3a15c47","ref":"refs/heads/main","pushedAt":"2024-01-31T03:46:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Fix the lockfile / linter build step (#38)\n\nWe commit the lockfiles now, so version changes need a re-bundle. (I\r\nmissed this in the last PR.) Once this is in I can cut a new release.","shortMessageHtmlLink":"Fix the lockfile / linter build step (Betterment#38)"}},{"before":"5399e0f56b2c35799317cd039f94749b08c367f9","after":null,"ref":"refs/heads/fix-lockfile","pushedAt":"2024-01-31T03:45:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"}},{"before":null,"after":"5399e0f56b2c35799317cd039f94749b08c367f9","ref":"refs/heads/fix-lockfile","pushedAt":"2024-01-31T03:39:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Fix the lockfile / linter build step","shortMessageHtmlLink":"Fix the lockfile / linter build step"}},{"before":"66125d123cff8742e729503dfdd1cc2dac7bb34a","after":"f2e5edc5d3f9481a9636d967d5cbe7ac191995eb","ref":"refs/heads/main","pushedAt":"2024-01-31T03:38:54.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Optimize JobWrapper queueing ActiveJobs (#35)\n\nThis PR introduces a change to avoid calling `ActiveJob::Base#deserialize` during queueing the job whilst maintaining existing functionality.\r\n\r\nThe change is in `JobWrapper`, which previously only took in a hash of `job_data` and knew how to deserialize it into a job object so we can interrogate it for `queue_name` or `max_attempts`, etc. To avoid the roundtrip through serialization, we change `JobWrapper#initialize` to take in either the job object directly, or a hash as it did previously. When it's a hash (needed when running the job in the worker), it still deserializes it into a job object. When it's a job object just assign it to `@job` directly and continue.\r\n\r\nWe discovered this through having a second-order effect in `#deserialize` using it to trigger some logic as the job comes off the queue, but we were then seeing the logic run multiple times for one job execution. Tracked it back to the `JobClass.perform_later` calling `#deserialize` and being majorly confused why it was deserialising in the web process.\r\n\r\nThis will make enqueueing jobs faster too, because we don't need a roundtrip through `#serialize`, `#deserialize` as well as allocating less objects. In practice this is likely a small effect, but we get it for free avoiding the behaviour above.\r\n\r\nLooking at all the built-in adapters in ActiveJob, as well as good_job and solid_queue, they all avoid calling `job.serialize` during the enqueuing, even those adapters that support invoking methods on the Job class instance like delayed does.\r\n\r\nFrom one angle it's an optimization, from another angle it's a bugfix (:","shortMessageHtmlLink":"Optimize JobWrapper queueing ActiveJobs (Betterment#35)"}},{"before":"d4ef62044e7203c63f3e7581a72caf74fb86a4d8","after":null,"ref":"refs/heads/dependabot","pushedAt":"2024-01-08T18:23:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"}},{"before":"c198f4158e22777c841c6efc9b2737b1cd75066a","after":"d4ef62044e7203c63f3e7581a72caf74fb86a4d8","ref":"refs/heads/dependabot","pushedAt":"2024-01-08T18:22:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Avoid decreasing bundler version","shortMessageHtmlLink":"Avoid decreasing bundler version"}},{"before":null,"after":"c198f4158e22777c841c6efc9b2737b1cd75066a","ref":"refs/heads/dependabot","pushedAt":"2024-01-08T18:04:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Address dependabot issues","shortMessageHtmlLink":"Address dependabot issues"}},{"before":"370fb6ecd8d23a0b897cb223e27655898463eb46","after":null,"ref":"refs/heads/rails-71-fix","pushedAt":"2023-10-19T18:26:03.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"}},{"before":null,"after":"370fb6ecd8d23a0b897cb223e27655898463eb46","ref":"refs/heads/rails-71-fix","pushedAt":"2023-10-19T17:43:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Bump version","shortMessageHtmlLink":"Bump version"}},{"before":"1d2e70b5edc13a68254dd85d7fce7001395b6c27","after":null,"ref":"refs/heads/rails-7-1","pushedAt":"2023-10-11T16:10:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"}},{"before":"602012daa5a5063765cc86080371ab5068c317a7","after":"1d2e70b5edc13a68254dd85d7fce7001395b6c27","ref":"refs/heads/rails-7-1","pushedAt":"2023-10-06T22:45:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Bump version","shortMessageHtmlLink":"Bump version"}},{"before":"33387b04960781070c84d21050f03f74a5a9dc3e","after":"602012daa5a5063765cc86080371ab5068c317a7","ref":"refs/heads/rails-7-1","pushedAt":"2023-10-06T22:44:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Fix tests on newer rubies","shortMessageHtmlLink":"Fix tests on newer rubies"}},{"before":"26d0352df7ec5e3b990c5442963f8b77d615f2a0","after":"33387b04960781070c84d21050f03f74a5a9dc3e","ref":"refs/heads/rails-7-1","pushedAt":"2023-10-06T22:30:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Fix tests on newer rubies","shortMessageHtmlLink":"Fix tests on newer rubies"}},{"before":"f07015ed8399565d6fa1e82d817516a6b6bc6907","after":"26d0352df7ec5e3b990c5442963f8b77d615f2a0","ref":"refs/heads/rails-7-1","pushedAt":"2023-10-06T22:19:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Add ruby 3.1 and 3.2 to build matrix","shortMessageHtmlLink":"Add ruby 3.1 and 3.2 to build matrix"}},{"before":"0535b330d57c58f6a71b99cf9b85608348279955","after":"f07015ed8399565d6fa1e82d817516a6b6bc6907","ref":"refs/heads/rails-7-1","pushedAt":"2023-10-06T22:16:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Add 7.1 to build matrix","shortMessageHtmlLink":"Add 7.1 to build matrix"}},{"before":"9c283c45a8cd29e9768182ce2a534eb9fc9f45b3","after":"0535b330d57c58f6a71b99cf9b85608348279955","ref":"refs/heads/rails-7-1","pushedAt":"2023-10-06T22:12:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Use bundler-cache on linter action","shortMessageHtmlLink":"Use bundler-cache on linter action"}},{"before":"8f5adb139ed282763be0ae947222affc706cab32","after":"9c283c45a8cd29e9768182ce2a534eb9fc9f45b3","ref":"refs/heads/rails-7-1","pushedAt":"2023-10-06T22:09:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Address handler changes in Rails 7.1","shortMessageHtmlLink":"Address handler changes in Rails 7.1"}},{"before":null,"after":"8f5adb139ed282763be0ae947222affc706cab32","ref":"refs/heads/rails-7-1","pushedAt":"2023-10-06T22:08:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"Appease latest linter rules","shortMessageHtmlLink":"Appease latest linter rules"}},{"before":null,"after":"b075696374f6374c41495911536ab266d0e7531c","ref":"refs/heads/ruby-3-fixes","pushedAt":"2023-03-16T19:46:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"smudge","name":"Nathan Griffith","path":"/smudge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83998?s=80&v=4"},"commit":{"message":"More Ruby 3.0 kwargs/args coverage (doesn't seem necessary)","shortMessageHtmlLink":"More Ruby 3.0 kwargs/args coverage (doesn't seem necessary)"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEPTe02wA","startCursor":null,"endCursor":null}},"title":"Activity ยท smudge/delayed"}