-
Notifications
You must be signed in to change notification settings - Fork 0
/
add_tasks.py
83 lines (63 loc) · 1.95 KB
/
add_tasks.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
from __future__ import division
import os
from celery import Celery, group, subtask
import sys
import swiftclient.client
from flask import Flask, jsonify
from flask import request
from flask import render_template
import time
import json
import swiftclient.client
from worker_tasks import calc_lift_force
bucket_name = "G1_Project_result"
def input_form_user(min_ang,max_ang,nr):
min_angle = min_ang # 0
max_angle = max_ang # 30
nr_angles = nr # 10
incr_angle = (max_angle - min_angle) / nr_angles # 0.3
if incr_angle < 1:
incr_angle = 1
else:
incr_angle = int(incr_angle)
print "INCR_ANGLE: " +str(incr_angle)
i = min_angle
angle_list = []
while i < max_angle:
angle_list.append(i)
print "adding angle "+ str(i)
i += incr_angle
return angle_list
config = {'user':os.environ['OS_USERNAME'],
'key':os.environ['OS_PASSWORD'],
'tenant_name':os.environ['OS_TENANT_NAME'],
'authurl':os.environ['OS_AUTH_URL']}
conn = swiftclient.client.Connection(auth_version=2, **config)
# Clean up container in Swift
(r, ol) = conn.get_container(bucket_name)
# DELETE ALL OBJECTS
for obj in ol:
conn.delete_object(bucket_name, obj['name'])
print "All Objects deleted..."
angle_list = input_form_user(0,40,20)
start = time.time()
print "STARTRING!!!!!!!"
tasks = [calc_lift_force.s(angle) for angle in angle_list]
task_group = group(tasks)
group_result = task_group()
print "Waiting for workers to finnish..."
while (group_result.ready() != True):
time.sleep(2)
if group_result.ready() == True:
res = group_result.get()
end = time.time()
tot_time = end-start
print "DONE!!!!!!!"
(response, obj_list) = conn.get_container(bucket_name)
object_name_list = []
print "================ v OBJECT NAMES: v ================"
for obj in obj_list:
print obj['name']
print "*** Finished after "+str(tot_time)+"s ***"
print "=============== RES =============="
print len(res)