mirror of https://github.com/jumpserver/jumpserver
[future] 修改celery 使用eventlet 作为concurrent pool, 添加获取资产硬件信息的 初步接口
parent
fd945513ac
commit
97d7e6cb9b
|
@ -1,3 +1,5 @@
|
||||||
# ~*~ coding: utf-8 ~*~
|
# ~*~ coding: utf-8 ~*~
|
||||||
#
|
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
from .tasks import longtime_add
|
|
||||||
import time
|
|
||||||
|
|
||||||
result = longtime_add.delay(1,2)
|
|
||||||
print 'Task finished? ', result.ready()
|
|
||||||
print 'Task result: ', result.result
|
|
||||||
time.sleep(10)
|
|
||||||
print 'Task finished? ', result.ready()
|
|
||||||
print 'Task result: ', result.result
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from .tasks import get_asset_hardware_info
|
||||||
|
from celery.result import AsyncResult
|
||||||
|
|
||||||
|
|
||||||
|
def start_get_hardware_info(*assets):
|
||||||
|
result = get_asset_hardware_info.delay(*assets)
|
||||||
|
return result.id
|
||||||
|
|
||||||
|
|
||||||
|
def get_hardware_info(task_id):
|
||||||
|
result = AsyncResult(task_id)
|
||||||
|
if result.ready():
|
||||||
|
return {"Completed": False, "data": result.get()}
|
||||||
|
else:
|
||||||
|
return {"Completed": True, "data": None}
|
|
@ -1,17 +1,35 @@
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import, unicode_literals
|
||||||
import time
|
|
||||||
|
|
||||||
from celery import shared_task
|
from celery import shared_task
|
||||||
from common import celery_app
|
from common import celery_app
|
||||||
|
|
||||||
|
from ops.ansible_api import Config, ADHocRunner
|
||||||
|
|
||||||
@shared_task
|
|
||||||
def longtime_add(x, y):
|
@shared_task(name="get_asset_hardware_info")
|
||||||
print 'long time task begins'
|
def get_asset_hardware_info(*assets):
|
||||||
# sleep 5 seconds
|
conf = Config()
|
||||||
time.sleep(5)
|
play_source = {
|
||||||
print 'long time task finished'
|
"name": "Get host hardware information",
|
||||||
return x + y
|
"hosts": "default",
|
||||||
|
"gather_facts": "no",
|
||||||
|
"tasks": [
|
||||||
|
dict(action=dict(module='setup'))
|
||||||
|
]
|
||||||
|
}
|
||||||
|
hoc = ADHocRunner(conf, play_source, *assets)
|
||||||
|
ext_code, result = hoc.run()
|
||||||
|
return ext_code, result
|
||||||
|
|
||||||
|
|
||||||
|
@shared_task(name="asset_test_ping_check")
|
||||||
|
def asset_test_ping_check():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@shared_task(name="add_user_to_assert")
|
||||||
|
def add_user_to_asset():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@celery_app.task(name='hello-world')
|
@celery_app.task(name='hello-world')
|
||||||
|
|
|
@ -23,4 +23,4 @@ sshpubkeys==2.2.0
|
||||||
djangorestframework-bulk==0.2.1
|
djangorestframework-bulk==0.2.1
|
||||||
python-gssapi==0.6.4
|
python-gssapi==0.6.4
|
||||||
tornado==4.4.2
|
tornado==4.4.2
|
||||||
|
eventlet==0.19.0
|
||||||
|
|
|
@ -29,7 +29,7 @@ def start_django():
|
||||||
def start_celery():
|
def start_celery():
|
||||||
os.chdir(apps_dir)
|
os.chdir(apps_dir)
|
||||||
print('start celery')
|
print('start celery')
|
||||||
subprocess.call('celery -A common worker -l info', shell=True)
|
subprocess.call('celery -A common worker -P eventlet -l info', shell=True)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|
Loading…
Reference in New Issue