… | |
… | |
2 | |
2 | |
3 | our $SCHEDULE_INTERVAL = $cf::CFG{extractor_schedule_interval} || 3600; |
3 | our $SCHEDULE_INTERVAL = $cf::CFG{extractor_schedule_interval} || 3600; |
4 | |
4 | |
5 | use JSON::XS; |
5 | use JSON::XS; |
6 | |
6 | |
7 | my $db_mapinfo = cf::sync_job { cf::db_table "tag-mapinfo" }; # info/cache for maps |
7 | our $db_mapinfo = cf::sync_job { cf::db_table "tag-mapinfo" }; # info/cache for maps |
8 | my $db_target = cf::sync_job { cf::db_table "tag-target" }; # tag => maps |
8 | our $db_target = cf::sync_job { cf::db_table "tag-target" }; # tag => maps |
9 | |
9 | |
10 | sub remove_tag_target { |
10 | sub remove_tag_target { |
11 | my ($txn, $tag, $target) = @_; |
11 | my ($txn, $tag, $target) = @_; |
12 | # - U O |
12 | # - U O |
13 | |
13 | |
… | |
… | |
178 | $Coro::current->prio (Coro::PRIO_MIN); |
178 | $Coro::current->prio (Coro::PRIO_MIN); |
179 | $Coro::current->desc ("map-tag scanner"); |
179 | $Coro::current->desc ("map-tag scanner"); |
180 | reload; |
180 | reload; |
181 | }; |
181 | }; |
182 | |
182 | |
183 | cf::async { reload }; # force at startup |
183 | cf::post_init { |
|
|
184 | $RELOAD_SCHEDULER->invoke (0); # force at startup |
|
|
185 | }; |
184 | |
186 | |
185 | # find all objects with the given tag, or at least try to |
187 | # find all objects with the given tag, or at least try to |
186 | sub find($) { |
188 | sub find($) { |
187 | my ($tag) = @_; |
189 | my ($tag) = @_; |
188 | |
190 | |