tac_scribe 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/data/whitelist.example +5 -0
- data/db/001_create_unit_table.rb +1 -0
- data/lib/tac_scribe/cache.rb +4 -0
- data/lib/tac_scribe/daemon.rb +16 -11
- data/lib/tac_scribe/datastore.rb +4 -1
- data/lib/tac_scribe/event_processor.rb +1 -1
- data/lib/tac_scribe/event_queue.rb +2 -3
- data/lib/tac_scribe/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 485c9e87c957fd0e66db7cc762a36283baa2c4852546008b2d4dbd5e2372a53a
|
4
|
+
data.tar.gz: 95576f042c7455ac1e5b87bcab21d6a5ff555d8f67a83b4c7cd2531b56f696c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1aefe11c62a16ac70377bc48f262b699f2aebb4c38480bbe677b1490e5d14320c0e213d1976e0b4a477e1687e24b8bccae1b9a7f111bdaaeca1c0ebba63f9d62
|
7
|
+
data.tar.gz: 2d54201ba482399aafd29a4633b3b7361220457e85e8aae0447be8920191fc708e3582617affe5176d6bacd6682688c73e315772e094a71ada60af1101b6a2f5
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [0.5.0]
|
10
|
+
### Changed
|
11
|
+
- Added missing db column to migration file
|
12
|
+
- Clear the cache on server restart
|
13
|
+
- Add more info to logging
|
14
|
+
|
9
15
|
## [0.4.0]
|
10
16
|
### Changed
|
11
17
|
- Switch to periodic writing to the database
|
data/db/001_create_unit_table.rb
CHANGED
data/lib/tac_scribe/cache.rb
CHANGED
data/lib/tac_scribe/daemon.rb
CHANGED
@@ -53,6 +53,7 @@ module TacScribe
|
|
53
53
|
kill_threads
|
54
54
|
@event_queue.clear
|
55
55
|
Datastore.instance.truncate_table
|
56
|
+
Cache.instance.clear
|
56
57
|
start_processing_threads
|
57
58
|
start_db_sync_thread
|
58
59
|
start_reporting_thread
|
@@ -79,13 +80,13 @@ module TacScribe
|
|
79
80
|
|
80
81
|
def start_processing_threads
|
81
82
|
@event_processor = EventProcessor.new(cache: Cache.instance,
|
82
|
-
|
83
|
-
|
84
|
-
|
83
|
+
datastore: Datastore.instance,
|
84
|
+
event_queue: @event_queue,
|
85
|
+
whitelist: @whitelist)
|
85
86
|
event_processor_thread = Thread.new do
|
86
87
|
@event_processor.start
|
87
88
|
end
|
88
|
-
event_processor_thread.name =
|
89
|
+
event_processor_thread.name = 'Event Processor'
|
89
90
|
@threads << event_processor_thread
|
90
91
|
end
|
91
92
|
|
@@ -97,7 +98,7 @@ module TacScribe
|
|
97
98
|
deleted.each { |id| Cache.instance.data.delete(id) }
|
98
99
|
end
|
99
100
|
end
|
100
|
-
db_write_thread.name =
|
101
|
+
db_write_thread.name = 'Database Writing'
|
101
102
|
@threads << db_write_thread
|
102
103
|
end
|
103
104
|
|
@@ -106,18 +107,22 @@ module TacScribe
|
|
106
107
|
|
107
108
|
reporting_thread = Thread.new do
|
108
109
|
loop do
|
109
|
-
puts "#{Time.now.strftime('%FT%T')}\t"
|
110
|
-
"Events Incoming: #{@event_queue.events_written}\t"
|
111
|
-
"Processed: #{@event_processor.events_processed}\t"
|
112
|
-
"Ignored: #{@event_processor.events_ignored}\t"
|
113
|
-
"Queue Size: #{@event_queue.size}"
|
110
|
+
puts "#{Time.now.strftime('%FT%T')}\t" \
|
111
|
+
"Events Incoming: #{@event_queue.events_written}\t" \
|
112
|
+
"Processed: #{@event_processor.events_processed}\t" \
|
113
|
+
"Ignored: #{@event_processor.events_ignored}\t" \
|
114
|
+
"Queue Size: #{@event_queue.size}\t" \
|
115
|
+
"Objects Written: #{Datastore.instance.written}\t" \
|
116
|
+
"Deleted: #{Datastore.instance.deleted}"
|
114
117
|
@event_queue.events_written = 0
|
115
118
|
@event_processor.events_processed = 0
|
116
119
|
@event_processor.events_ignored = 0
|
120
|
+
Datastore.instance.written = 0
|
121
|
+
Datastore.instance.deleted = 0
|
117
122
|
sleep 1
|
118
123
|
end
|
119
124
|
end
|
120
|
-
reporting_thread.name =
|
125
|
+
reporting_thread.name = 'Reporting'
|
121
126
|
@threads << reporting_thread
|
122
127
|
end
|
123
128
|
|
data/lib/tac_scribe/datastore.rb
CHANGED
@@ -14,7 +14,7 @@ module TacScribe
|
|
14
14
|
include Singleton
|
15
15
|
include GeoRuby::SimpleFeatures
|
16
16
|
|
17
|
-
attr_accessor :db
|
17
|
+
attr_accessor :db, :written, :deleted
|
18
18
|
|
19
19
|
@configuration = nil
|
20
20
|
@db = nil
|
@@ -64,6 +64,9 @@ module TacScribe
|
|
64
64
|
.multi_insert(objects)
|
65
65
|
deleted_ids = @db[:units].where(deleted: true).select_map(:id)
|
66
66
|
@db[:units].where(deleted: true).delete
|
67
|
+
self.written = objects.size
|
68
|
+
self.deleted = deleted_ids.size
|
69
|
+
|
67
70
|
deleted_ids
|
68
71
|
end
|
69
72
|
|
@@ -6,7 +6,6 @@ require 'time'
|
|
6
6
|
module TacScribe
|
7
7
|
# Processes the events emitted by the Ruby Tacview Client
|
8
8
|
class EventQueue < TacviewClient::BaseProcessor
|
9
|
-
|
10
9
|
attr_accessor :events_written
|
11
10
|
|
12
11
|
def initialize
|
@@ -44,7 +43,7 @@ module TacScribe
|
|
44
43
|
# @option event [BigDecimal] :altitude The object altitude above sea level
|
45
44
|
# in meters to 1 decimal place.
|
46
45
|
def update_object(event)
|
47
|
-
self.events_written +=1
|
46
|
+
self.events_written += 1
|
48
47
|
@events << { type: :update_object, event: event, time: @time }
|
49
48
|
end
|
50
49
|
|
@@ -53,7 +52,7 @@ module TacScribe
|
|
53
52
|
# @param object_id [String] A hexadecimal number representing the object
|
54
53
|
# ID
|
55
54
|
def delete_object(object_id)
|
56
|
-
self.events_written +=1
|
55
|
+
self.events_written += 1
|
57
56
|
@events << { type: :delete_object, object_id: object_id }
|
58
57
|
end
|
59
58
|
|
data/lib/tac_scribe/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tac_scribe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeffrey Jones
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -201,6 +201,7 @@ files:
|
|
201
201
|
- bin/console
|
202
202
|
- bin/setup
|
203
203
|
- data/airfields.json
|
204
|
+
- data/whitelist.example
|
204
205
|
- db/001_create_unit_table.rb
|
205
206
|
- db/README.md
|
206
207
|
- exe/tac_scribe
|