make wsjt queue configurable

This commit is contained in:
Jakob Ketterl 2019-09-12 15:32:54 +02:00
parent 25a1d06dcb
commit a11875145b
2 changed files with 13 additions and 1 deletions

View File

@ -250,6 +250,17 @@ google_maps_api_key = ""
# in seconds; default: 2 hours
map_position_retention_time = 2 * 60 * 60
# wsjt decoder queue configuration
# due to the nature of the wsjt operating modes (ft8, ft8, jt9, jt65 and wspr), the data is recorded for a given amount
# of time (6.5 seconds up to 2 minutes) and decoded at the end. this can lead to very high peak loads.
# to mitigate this, the recordings will be queued and processed in sequence.
# the number of workers will limit the total amount of work (one worker will losely occupy one cpu / thread)
wsjt_queue_workers = 2
# the maximum queue length will cause decodes to be dumped if the workers cannot keep up
# if you are running background services, make sure this number is high enough to accept the task influx during peaks
# i.e. this should be higher than the number of wsjt services running at the same time
wsjt_queue_length = 10
temporary_directory = "/tmp"
services_enabled = False

View File

@ -41,7 +41,8 @@ class WsjtQueue(Queue):
@staticmethod
def getSharedInstance():
if WsjtQueue.sharedInstance is None:
WsjtQueue.sharedInstance = WsjtQueue(maxsize=10, workers=2)
pm = PropertyManager.getSharedInstance()
WsjtQueue.sharedInstance = WsjtQueue(maxsize=pm["wsjt_queue_length"], workers=pm["wsjt_queue_workers"])
return WsjtQueue.sharedInstance
def __init__(self, maxsize, workers):