extface 0.0.6 → 0.0.7

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
  SHA1:
3
- metadata.gz: f087805cac85a3a24f51cb71fd0a5b97d787f1ca
4
- data.tar.gz: 80bcf72379c305197d1281f6b958e5e744b81009
3
+ metadata.gz: a54d359e0cd0acd064934a6fc0213632c1e960b9
4
+ data.tar.gz: f2de121b94f6a27f4394229d94668938581134ea
5
5
  SHA512:
6
- metadata.gz: 03a6973e0839a3c9bbc13605ff74369b36170fc249815828d0a5f6b0f4b21a5a6937c35491c771a0dce5891a37381ab65f8e4021c72ecd18578d125d2156f5d7
7
- data.tar.gz: 1a09107b86362f4b101f859f0c5f6e628eb09fd4a1c72e8788eed22c5761e7f2d2ecb09743cf817a987c403c9ee41ffc83fde37771e77874d2979323a23541b9
6
+ metadata.gz: ce9fc475d6ad9afdaec145de6e380b703d988892603ac87a1d49571410d7ac3c2ab1f2a673c1ea1299858d0bff0b282a5e835a42e4fa2dac563566ff7b2a88d2
7
+ data.tar.gz: ec83097e39d23d82a146b31d1a84c4852c3b5edec7dfe5e895fe86e428bc498d4c83f650fdaf0aa43024f5918e01aed0964fdfd6324430d83f8544df3406b89a
@@ -22,6 +22,7 @@ module Extface
22
22
  cookies.permanent[:extface] = job.id
23
23
  p "Processing job #{job.id}"
24
24
  list, data = r.blpop(job.id, timeout: 1)
25
+ #TODO rescue here will loose data
25
26
  while data
26
27
  response.stream.write data
27
28
  r.publish(job.id, "OK")
@@ -32,7 +33,11 @@ module Extface
32
33
  end #redis block
33
34
  end
34
35
  rescue => e
35
- p "will continue next time #{e.message}"
36
+ if e.instance_of? Timeout::Error
37
+ p "will continue next time #{e.message}"
38
+ else
39
+ render nothing: true, status: :internal_server_error
40
+ end
36
41
  ensure
37
42
  response.stream.close
38
43
  end
@@ -28,7 +28,7 @@ module Extface
28
28
  def push(buffer)
29
29
 
30
30
  if @job
31
- Timeout.timeout(10) do
31
+ Timeout.timeout(Extface.device_timeout) do
32
32
  Extface.redis_block do |r|
33
33
  r.subscribe(@job.id) do |on| #blocking until delivered
34
34
  on.subscribe do |channel, subscriptions|
@@ -3,6 +3,8 @@ module Extface
3
3
  belongs_to :device, inverse_of: :jobs
4
4
 
5
5
  scope :active, ->{ where(arel_table[:completed_at].eq(nil).and(arel_table[:failed_at].eq(nil))) }
6
+ scope :completed, ->{ where(arel_table[:completed_at].not_eq(nil)) }
7
+ scope :failed, ->{ where(arel_table[:failed_at].not_eq(nil)) }
6
8
 
7
9
  def complete!
8
10
  self.completed_at = Time.now
@@ -40,13 +40,13 @@
40
40
 
41
41
  <dt><%= t('.successful_jobs') %></dt>
42
42
  <dd>
43
- <%= @device.jobs.count %>
43
+ <%= @device.jobs.completed.count %>
44
44
  (<%= t('.last') %>: <%= distance_of_time_in_words_to_now @device.jobs.maximum(:completed_at) %> ago)
45
45
  </dd>
46
46
 
47
47
  <dt><%= t('.failures') %></dt>
48
48
  <dd>
49
- <%= @device.jobs.count %>
49
+ <%= @device.jobs.failed.count %>
50
50
  (<%= t('.last') %>: <%= distance_of_time_in_words_to_now @device.jobs.maximum(:failed_at) %> ago)
51
51
  </dd>
52
52
 
data/lib/extface.rb CHANGED
@@ -10,6 +10,9 @@ module Extface
10
10
  mattr_reader :mappings
11
11
  @@mappings = ActiveSupport::OrderedHash.new
12
12
 
13
+ mattr_reader :device_timeout
14
+ @@device_timeout = 10
15
+
13
16
  class << self
14
17
  def setup
15
18
  yield self
@@ -1,3 +1,3 @@
1
1
  module Extface
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: extface
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Vangelov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-22 00:00:00.000000000 Z
11
+ date: 2014-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails