Guest User

Untitled

a guest
Feb 25th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. ]# yum install MariaDB-devel MariaDB-shared
  2. ]# source /home/myvenv/bin/activate
  3. ]# pip install mysqlclient
  4. ]# mysql -u root
  5. > CREATE DATABASE cloud CHARACTER SET UTF8;
  6. > CREATE USER cloud@localhost IDENTIFIED BY '1324';
  7. > CREATE USER cloud@127.0.0.1 IDENTIFIED BY '1324';
  8. > GRANT ALL PRIVILEGES ON cloud.* to cloud@localhost;
  9. > GRANT ALL PRIVILEGES ON cloud.* to cloud@127.0.0.1;
  10. > FLUSH PRIVILEGES;
  11.  
  12. ]# cd /home/uwsgi/cloud
  13. ]# vi cloud/settings.py
  14. DATABASES = {
  15. 'default': {
  16. 'ENGINE': 'django.db.backends.mysql',
  17. 'NAME': 'cloud',
  18. 'USER': 'cloud',
  19. 'PASSWORD': '1324',
  20. 'HOST': 'localhost',
  21. 'PORT': '3306',
  22. 'OPTIONS': {
  23. 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
  24. },
  25. }
  26. }
  27.  
  28. ]# ./manage.py migrate
  29. ]# yum install rabbitmq-server
  30. ]# rabbitmq-plugins enable rabbitmq_management
  31. ]# systemctl start rabbitmq-server
  32. ]# rabbitmqctl add_user cloud 1324
  33. ]# rabbitmqctl add_vhost cloud
  34. ]# rabbitmqctl set_user_tags cloud cloud
  35. ]# rabbitmqctl set_permissions -p cloud cloud ".*" ".*" ".*"
  36. ]# pip install celery
  37. ]# pip install django-celery-results
  38. ]# ./manage.py migrate
  39. ]# vi cloud/settings.py
  40. CELERY_BROKER_URL = 'amqp://cloud:1324@localhost:5672/cloud'
  41. CELERY_RESULT_BACKEND = 'django-db'
  42.  
  43. INSTALLED_APPS = [
  44. 'django.contrib.admin',
  45. 'django.contrib.auth',
  46. 'django.contrib.contenttypes',
  47. 'django.contrib.sessions',
  48. 'django.contrib.messages',
  49. 'django.contrib.staticfiles',
  50. + 'django_celery_results',
  51. 'channels',
  52. 'chat',
  53. ]
  54.  
  55. ]# vi cloud/celery.py
  56. from __future__ import absolute_import
  57. import os
  58. from celery import Celery
  59.  
  60. app_name = 'cloud'
  61. os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{}.settings'.format(app_name))
  62. from django.conf import settings
  63. app = Celery(app_name)
  64. app.config_from_object('django.conf:settings', namespace='CELERY')
  65. app.autodiscover_tasks()
  66.  
  67. ]# vi cloud/__init__.py
  68. from __future__ import absolute_import, unicode_literals
  69. from .celery import app as celery_app
  70.  
  71. __all__ = ['celery_app']
  72.  
  73. ]# vi chat/tasks.py
  74. from __future__ import absolute_import
  75. from celery import shared_task
  76. from celery import Task
  77. from websocket import create_connection
  78.  
  79. class ChatTask(Task):
  80. def on_success(self, retval, task_id, targs, tkwargs):
  81. msg = '{} success'.format(task_id)
  82. ws = create_connection("ws://localhost:8001/chat/foo/")
  83. ws.send(msg)
  84. ws.close()
  85. print(msg)
  86. super(ChatTask, self).on_success(retval, task_id, targs, tkwargs)
  87.  
  88. def on_failure(self, exc, task_id, targs, tkwargs, einfo):
  89. print('{} error'.format(task_id))
  90. super(ChatTask, self).on_failure(exc, task_id, targs, tkwargs, einfo)
  91.  
  92. @shared_task(base=ChatTask)
  93. def add(x, y):
  94. return x + y
  95.  
  96. @shared_task
  97. def mul(x, y):
  98. return x * y
  99.  
  100. @shared_task
  101. def xsum(numbers):
  102. return sum(numbers)
  103.  
  104. ]# celery -A cloud worker -l info
  105. ]# ./manage.py shell
  106. >>> from chat.tasks import *
  107. >>> add.delay(1,1)
  108. <AsyncResult: 305be35d-1aa8-4c77-996b-ecb86bfc07a1>
  109. >>> add.apply_async((2,2))
  110. <AsyncResult: f451a45e-1165-4246-a10d-6fbab28c0892>
Add Comment
Please, Sign In to add comment