Private
Public Access
1
0
Files
rowsandall/rowers/longtask.py
Sander Roosendaal 8af7ac8af4 commit
2022-02-15 08:05:12 +01:00

92 lines
2.3 KiB
Python

from __future__ import absolute_import
from rowsandall_app.settings_dev import SITE_URL as SITE_URL_DEV
from rowsandall_app.settings import SITE_URL
import requests
import threading
import redis
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from __future__ import absolute_import
import numpy as np
import time
from redis import StrictRedis, Redis
from celery import result as celery_result
import json
redis_connection = StrictRedis()
def getvalue(data): # pragma: no cover
perc = 0
total = 1
done = 0
id = 0
session_key = 'noot'
for i in data.iteritems():
if i[0] == 'total':
total = float(i[1])
if i[0] == 'done':
done = float(i[1])
if i[0] == 'id':
id = i[1]
if i[0] == 'session_key':
session_key = i[1]
return total, done, id, session_key
def longtask(aantal, jobid=None, debug=False,
session_key=None): # pragma: no cover
counter = 0
channel = 'tasks'
for i in range(aantal):
time.sleep(1)
counter += 1
if counter > 10:
counter = 0
if debug:
progress = 100.*i/aantal
if jobid != None:
redis_connection.publish(channel, json.dumps(
{
'done': i,
'total': aantal,
'id': jobid,
'session_key': session_key,
}
))
return 1
def longtask2(aantal, jobid=None, debug=False, secret=''): # pragma: no cover
counter = 0
channel = 'tasks'
for i in range(aantal):
time.sleep(1)
counter += 1
if counter > 10:
counter = 0
progress = int(100.*i/aantal)
if debug:
print(progress)
if jobid != None:
if debug:
url = SITE_URL_DEV
else:
url = SITE_URL
url += "/rowers/record-progress/"
url += str(progress)+"/"+jobid
post_data = {"secret": secret}
s = requests.post(url, data=post_data)
if debug:
print(url)
print(s)
return 1