async_block 0.2.2 → 0.2.4

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: edf6ec5cd97396b384affe1e3fe9b20e54e63bc8f25aeb364f0bfe8053e3cd85
4
- data.tar.gz: 333fe7fca486e6ce5bd333009c7c1f963b15712785db67a48000554c36b78577
3
+ metadata.gz: ecd9d7e535b3cc5a1c3202a298246dd4d3ac610cd5fde6af8123590608f92692
4
+ data.tar.gz: cdb1f518b1c333d5b93cdca58e83c46efcb709a3d59b4d0b04899460deee1123
5
5
  SHA512:
6
- metadata.gz: ecacd457ba31dc5fdc76e04526f25087a2b637b36172411fb335a07cacad8b30c6df22ea43dbc505cd612ad0a412f56c7aab78aab40654558dd7010bdae0aca0
7
- data.tar.gz: c057869a25f1725b9046452dcb11ac5906b57eeb2b754753b2d7476acac939168d54559bad2b7f9d340035124d656cec97ca15dc9f1bfb5271086f4b2fff730c
6
+ metadata.gz: 511fa72a1d25adefa23f78ea983a98610715ec72e2ad22af09248a122fbd85244ad1e51dea1fa83d943626ff5c929a4cb8ecb1e39374d1d094025e864d0a9274
7
+ data.tar.gz: c21922bbab72a2ad274f846b703e17834a52d95438e858abcfa685b03b3f281a5f4a7f1b4b7ee61cc89a590df34324d742e21f6d4ce7b93a34b4e86e70c370ca
@@ -9,31 +9,42 @@ module AsyncBlock
9
9
  queue_as :async_wrapper_job
10
10
 
11
11
  retry_on StandardError, wait: :exponentially_longer, attempts: 3 do |job, error|
12
- send_error_message(job, error)
12
+ # send_error_message(job, error)
13
+ error_message = "Stopped retrying #{job.class} (JID #{job.job_id})
14
+ with #{job.arguments.join(', ')} due to
15
+ '#{error.class} - #{error.message}'.
16
+ This job was retried for #{job.executions} times.".squish
17
+ on_error(error_message)
13
18
  end
14
19
 
15
20
  def perform(source, on_error_source)
16
- @block = str_to_block(source)
17
- @on_error = str_to_block(on_error_source)
18
- execute_block!
21
+ initialize_on_error(on_error_source)
22
+ # Converts source code to callable block
23
+ block = source_to_block(source)
24
+ execute_block!(block)
19
25
  end
20
26
 
21
27
  private
22
28
 
23
- def str_to_block(source)
29
+ def source_to_block(source)
24
30
  SourceToBlock.new(source).convert
25
31
  end
26
32
 
27
- def execute_block!(_block)
28
- @block.call
33
+ def execute_block!(block)
34
+ block.call
29
35
  end
30
36
 
31
- def send_error_message(job, error)
32
- error_message = "Stopped retrying #{job.class} (JID #{job.job_id})
33
- with #{job.arguments.join(', ')} due to
34
- '#{error.class} - #{error.message}'.
35
- This job was retried for #{job.executions} times.".squish
36
- @on_error.call(error_message)
37
+ def initialize_on_error(on_error_source)
38
+ # Puts :on_error method in instance
39
+ source_to_block(on_error_source).call
37
40
  end
41
+
42
+ # def send_error_message(job, error)
43
+ # error_message = "Stopped retrying #{job.class} (JID #{job.job_id})
44
+ # with #{job.arguments.join(', ')} due to
45
+ # '#{error.class} - #{error.message}'.
46
+ # This job was retried for #{job.executions} times.".squish
47
+ # on_error(error_message)
48
+ # end
38
49
  end
39
50
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AsyncBlock
4
- VERSION = '0.2.2'
4
+ VERSION = '0.2.4'
5
5
  end
data/lib/async_block.rb CHANGED
@@ -10,16 +10,18 @@ require_relative 'async_block/async_wrapper_job'
10
10
  module AsyncBlock
11
11
  class Error < StandardError; end
12
12
 
13
- def self.perform(queue: nil, delay: nil, on_error: default_on_error, &block)
13
+ def self.perform(queue: nil, delay: nil, on_error: nil, &block)
14
14
  source = BlockToSource.new(block).convert
15
- on_error_source = BlockToSource.new(on_error).convert
15
+ on_error_source = BlockToSource.new(on_error || default_on_error).convert
16
16
  queue ||= DEFAULT_QUEUE_NAME
17
- if delay.nil?
18
- AsyncWrapperJob.set(queue: queue.to_sym).perform_later(source, on_error_source)
19
- else
17
+ if delay.instance_of?(ActiveSupport::Duration)
20
18
  AsyncWrapperJob.set(wait: delay, queue: queue.to_sym).perform_later(source, on_error_source)
19
+ else
20
+ AsyncWrapperJob.set(queue: queue.to_sym).perform_later(source, on_error_source)
21
21
  end
22
22
  end
23
23
 
24
- def self.default_on_error; end
24
+ def self.default_on_error(error_message)
25
+ puts('AsyncBlockError', error_message)
26
+ end
25
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async_block
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adittya Dey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-11 00:00:00.000000000 Z
11
+ date: 2023-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport