async_block 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2130f23729cead7cdd271b467edc3f5ab940cb2dd121e7b0bdeb6e4b37fa1eb1
4
- data.tar.gz: 8e7d3d8321f8575d64781aa1b61518d7ffbfe4fd9cbd8a63f45a4317fe8c606a
3
+ metadata.gz: 547d00223fe54f1c28dc29df9ede3e744d219e79da85a34896df228b8f761c7b
4
+ data.tar.gz: b0ded97015679b02b9b2063d0fd66e942e3bad6c344738a16254b1011861ebd3
5
5
  SHA512:
6
- metadata.gz: 2034c98fa200ee440f9cec18cf4b78892798048739af52dcede0b01c6fbe7282bec4e9b346843f6f13d3661a9d012773ac722af2e28d3e95020c27e8644088de
7
- data.tar.gz: d93484c7759261ae68290bc7bbdf6c6a6961ee6dc857b8d42b981fe7fe3399fb9a4d4a98352bec3efa32ccfc741f44521f03467c2aa1b0b11e45f7faeadc4b0e
6
+ metadata.gz: 7a94ec29c4331d7ec408934aaa7da01e0dc77508334a39ca906faf6fd43db6f22632e3d68894c10f9177ef4371aee489db7c27831462819e81160dbb13d74335
7
+ data.tar.gz: ebecc1147f69eae1d28812d64869ee82e72f6ab9db5fc79a67948004a070be0001c28e16257f9677b437b1295516b0c63e8867e1a01bd1e5130b4e6305e695b7
data/async_block.gemspec CHANGED
@@ -36,6 +36,8 @@ Gem::Specification.new do |spec|
36
36
 
37
37
  # Uncomment to register a new dependency of your gem
38
38
  spec.add_dependency 'activesupport', ['>= 3.0', '< 8.0']
39
+ spec.add_dependency 'method_source', '~> 1.0'
40
+ spec.add_dependency 'sourcify', '~> 0.5.0'
39
41
 
40
42
  # For more information and examples about making a new gem, check out our
41
43
  # guide at: https://bundler.io/guides/creating_gem.html
@@ -11,6 +11,7 @@ module AsyncBlock
11
11
  def perform(source)
12
12
  block = source_to_block(source)
13
13
  execute_block!(block)
14
+ true
14
15
  end
15
16
 
16
17
  private
@@ -1,5 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'sourcify'
4
+ require 'method_source'
5
+
3
6
  module AsyncBlock
4
7
  # BlockToSource - converts code block to source string
5
8
  # this will help in preventing writing of new jobs to run smaller pieces of code
@@ -19,7 +22,7 @@ module AsyncBlock
19
22
  private
20
23
 
21
24
  def block_to_source
22
- @block&.source
25
+ @block&.to_source(:strip_enclosure => true)
23
26
  end
24
27
  end
25
28
 
@@ -4,6 +4,8 @@ module AsyncBlock
4
4
  # Custom active job inherited from ActiveJob to enable error logging and retries
5
5
  class CustomActiveJob < ActiveJob::Base
6
6
  before_perform do |job|
7
+ message = "Starting job_id:#{job.job_id}"
8
+ puts('before_perform', message)
7
9
  context = { arguments: job.arguments.to_json }
8
10
  if Module.const_defined?(:Sentry)
9
11
  Sentry.configure_scope do |scope|
@@ -13,11 +15,19 @@ module AsyncBlock
13
15
  Honeybadger.context(context) if Module.const_defined?(:Honeybadger)
14
16
  end
15
17
 
18
+ after_perform
19
+
20
+ after_perform do |job|
21
+ message = "Executed job_id:#{job.job_id} successfully"
22
+ puts('after_perform', message)
23
+ end
24
+
16
25
  retry_on StandardError, wait: :exponentially_longer, attempts: 3 do |job, error|
17
26
  message = "Stopped retrying #{job.class} (JID #{job.job_id})
18
27
  with #{job.arguments.join(', ')} due to
19
28
  '#{error.class} - #{error.message}'.
20
29
  This job was retried for #{job.executions} times.".squish
30
+ puts('retry_on', message)
21
31
  Sentry.capture_message(message) if Module.const_defined?(:Sentry)
22
32
  Honeybadger.notify(message) if Module.const_defined?(:Honeybadger)
23
33
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AsyncBlock
4
- VERSION = '0.2.7'
4
+ VERSION = '0.2.8'
5
5
  end
data/lib/async_block.rb CHANGED
@@ -5,11 +5,9 @@ require_relative 'async_block/constants'
5
5
  require_relative 'async_block/block_source_service'
6
6
  require_relative 'async_block/async_wrapper_job'
7
7
 
8
- # AsyncBlock - A usable code block for rails to run your code asynchronusly,
8
+ # AsyncBlock - A usable code block for rails to run your code asynchronously,
9
9
  # this will help in preventing writing of new jobs to run smaller pieces of code
10
10
  module AsyncBlock
11
- class Error < StandardError; end
12
-
13
11
  def self.run(queue: nil, delay: nil, &block)
14
12
  source = BlockToSource.new(block).convert
15
13
  queue ||= DEFAULT_QUEUE_NAME
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async_block
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adittya Dey
@@ -30,6 +30,34 @@ dependencies:
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '8.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: method_source
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: sourcify
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 0.5.0
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 0.5.0
33
61
  description: |-
34
62
  A usable code block for rails to run your code asynchronusly, "\
35
63
  "this will help in preventing writing of new jobs to run smaller pieces of code.