当前位置: 首页 > news >正文

北京网站制作设计哪个公司好济南seo网站关键词排名

北京网站制作设计哪个公司好,济南seo网站关键词排名,榆林百度seo,公司logo在线设计免费Celery 应用Celery之前#xff0c;我想大家都已经了解了#xff0c;什么是Celery#xff0c;Celery可以做什么#xff0c;等等一些关于Celery的问题#xff0c;在这里我就不一一解释了。 应用之前#xff0c;要确保环境中添加了Celery包。 pip install celery pip instal…Celery 应用Celery之前我想大家都已经了解了什么是CeleryCelery可以做什么等等一些关于Celery的问题在这里我就不一一解释了。 应用之前要确保环境中添加了Celery包。 pip install celery pip install dajngo-celery 安装完成之后我们还需要安装Redis or RabbitMQ 需要用到它们来建立消息队列来完成收发任务。 RabbitMQ用户手册 https://www.rabbitmq.com/manpages.html Redis中文官网 http://www.redis.cn/ 用以上两种作为消息处理队列都可以今天我们来使用Redis来作为队列。 本人是用Windows来测试后边有Linux安装方法。 下载安装包链接 https://github.com/MSOpenTech/redis 打开链接之后出现如下页面然后点击     releases 进入到下载页面之后找到需要下载的版本测试版本(3.0.500)然后点击版本名称进入当前版本页面。 下载之前需要注意的是红框中第一个msi后缀的是微软格式的安装包第二个zip是压缩包。 下载完成之后双击msi文件。 安装完成之后以便从程序后续能够正常工作添加访问密码 打开安装目录找到  redis.windows-service.conf 配置文件用文本编辑器打开找到 requirepass字样的地方添加一行 requirepass 密码。 这是访问redis时需要的密码。一般情况下是可以不用设置的但是建议还是设置一下。(我用Notepad打开的)位置386  配置完成之后点击开始右击计算机管理 在左侧找到计算机管理(本地)服务和应用程序服务再在右侧找到Redis名称的服务查看启动状态没有启动则手动启动一般情况下服务该正常运行了。 Redis服务启动过程中报位置错误的情况下解决办法如下 1、打开redis安装目录找到redis.windows.conf文件拉到底部添加  maxmemory 209715200 2、添加完成之后保存退出打开终端用命令启动 redis-service.exe redis-windows.conf 3、启动过程中在报错错误信息:  [22420] 11 Oct 11:46:23.351 # Server started, Redis version 3.0.500 [22420] 11 Oct 11:46:23.355 # Cant handle RDB format version 7 [22420] 11 Oct 11:46:23.355 # Fatal error loading the DB: Invalid argument. Exiting. 解决办法 删除所有的dump.rdb文件重启新启动 redis-service.exe文件报错原因可能是rdb文件版本过高或者过低所导致问题出现 启动成功界面 redis启动成功之后就不要关闭应为celery是基于redis来收发任务的 需要用到redis的队列。 环境到此安装完成之后开始写个简单的异步任务。 Celery 异步任务 新创建一个Django项目添加一个应用。 django-admin startproject celery_sq 新建应用 python manage.py startapp app 项目初始化完成之后打开settings.py文件 一定要将celery导入进去才可以使用。紧接着导入需要用到的模块。 from celery.schedules import crontab from celery.schedules import timedelta 导入 在settings文件拉到底部添加以下代码。 import djcelery djcelery.setup_loader() BROKER_URL redis://127.0.0.1:6379/ CELERY_IMPORTS (app.tasks) CELERY_TIMEZONE Asia/Shanghai CELERYBEAT_SCHEDULER djcelery.schedulers.DatabaseScheduler 底部添加代码 以上代码添加完成之后再同级目录下创建 celery.py from __future__ import absolute_import, unicode_literals # -*- coding: utf-8 -*- __author__ YongCong Wu # Time : 2018/10/9 15:52 # Email : : 1922878025qq.com import os from celery import Celery from django.conf import settings# set the default Django settings module for the celery program. os.environ.setdefault(DJANGO_SETTINGS_MODULE, celery_sq.settings)app Celery(celery_sq)# Using a string here means the worker dont have to serialize # the configuration object to child processes. # - namespaceCELERY means all celery-related configuration keys # should have a CELERY_ prefix. app.config_from_object(django.conf:settings)# Load task modules from all registered Django app configs. app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)app.task(bindTrue) def debug_task(self):print(Request: {0!r}.format(self.request)) celery.py 在app目录下添加tasks.py文件 注意一个应用下只能添加一个tasks.py 一个py一遍可写多个任务。 from __future__ import absolute_import # -*- coding: utf-8 -*- __author__ YongCong Wu # Time : 2018/10/9 16:10 # Email : : 1922878025qq.com from celery_sq.celery import appapp.task def add(x, y):return x y tasks.py 添加完成之后在app同级目录下的views文件里边添加函数。 from django.shortcuts import render, HttpResponse# Create your views here. from .tasks import add import jsondef add_handler(request):x request.GET.get(x, 1)y request.GET.get(y, 1)result add(int(x), int(y))return HttpResponse(json.dumps({result: result})) views.py 添加urls.py # -*- coding: utf-8 -*- __author__ YongCong Wu # Time : 2018/10/10 14:46 # Email : : 1922878025qq.comfrom django.conf.urls import include, url from django.contrib import admin from app import viewsurlpatterns [url(r^add/, views.add_handler), ] urls.py app 中的url添加完成之后需要在celery_sq目录下的urls.py中添加。 from django.conf.urls import include, url from django.contrib import adminurlpatterns [url(r^admin/, include(admin.site.urls)),url(r^home/, include(app.urls)), # 添加这个 ] celery_sq/urls.py 添加完成之后就开始测试我们的项目现将项目运行起来。 python manage.pu runserver 项目启动完成之后重新打开一个终端进入项目目录启动django celery 服务。 python manage.py celery worker --loglevelinfo 见到这个界面就说明django celery已经启动成功了接下来就开始测试我们的异步任务了。 测试地址端口可自行修改根据自己端口来设置    http://127.0.0.1:9000/home/add/?x5y5 Celery定时任务  现在每家公司有各种各样的需求有的需要定时去查找数据等等一些定时的功能。接下来我们就用Celery来完成一个定时写入txt文件的一个任务。 app/tasks.py文件添加以下代码。 from celery import shared_taskshared_task def hello_world():with open(output.txt, a) as f:f.write(hello world)f.write(\n) tasks.py 在settings.py下添加 CELERYBEAT_SCHEDULE { # 定时器策略# 定时任务一 每隔30s运行一次u测试定时器1: {task: app.tasks.tsend_email,# schedule: crontab(minute*/2), # or schedule: timedelta(seconds3),schedule: timedelta(seconds30),args: (),}, } 定时 此时tasks.py文件里边有一个定时tasks。 参数定义 days 天 seconds 秒 microseconds 微秒 milliseconds 毫秒 minutes 分 hours 小时 timedelta参数含义 month_of_year 月份 day_of_month 日期 day_of_week 周 hour 小时 minute 分钟 crontab参数含义 定时任务添加完成之后启动celery beat celery启动了一个beat进程一直在不断的判断是否有任务需要执行。 celery -A celery_sq beat -l info 重新打开终端输入以上命令启动  celery beat 启动成功之后看到如下页面。 任务成功执行之后状态    到此为止在windows下测试异步任务和定时任务已经完成那么有个问题在windows下执行一下celery需要打开这么多的终端窗口哪用linux部署项目的时候该怎么办呢接下来我们就在linux下部署。我们用守护进程的方式来完成。 Linux下部署django-celery Linux默认Python环境是2.7需要自行下载Pyhton3.5。(安装过程自行百度) linux下我们一般用守护进程的方式来启动 Celery 不然总不能在打开很多窗口一个窗口启动一个beat等等吧。 在linux下使用supervisor来守护进程。 supervisor官网 http://supervisord.org 安装Redis wget http://download.redis.io/releases/redis-2.8.3.tar.gz 安装完成之后需要解压编译。依次按照以下命令执行。 tar xzf redis-2.8.3.tar.gzcd redis-2.8.3make make install 安装supervisor pip install supervisor supervisor配置 我们使用echo_supervisord_conf命令来得到supervisor配置模板打开终端shell输入以下命令。 echo_supervisord_conf supervisord.conf   接下来编辑 supervisord.conf文件 vim supervisord.conf 修改include分发ini文件目录。 配置完成之后创建conf.d目录 mkdir conf.d 创建完成之后进入目录创建ini文件将以下配置写入文件中。 测试添加ini文件是否读取。 在任意目录下创建hello.py文件添加以下代码来进行测试。 import time import sys while True:print(test data\n)sys.stdout.flush()time.sleep(1) 添加完成之后保存用 python 文件名称 来执行py文件是否出错。正确结果 测试完成之后开始为hello.py添加进程守护。 进入conf.d目录添加 hello.ini文件。将以下配置写入文件。 [program:hello] 名字随意不要重复 commandpython /home/hello.py stdout_Logfile/home/celery_log/hello.log stderr_logfile/home/celery_log/hello_error.log 运行supervisord supervisord -c /home/supervisor/supervisord.conf 运行hello进程 supervisordctl -c /home/supervisor/supervisord.conf 运行全部supervisordctl -c /home/supervisor/supervisord.conf start heelo 指定运行supervisordctl -c /home/supervisor/supervisord.conf stop heelo 指定停止参数 start status stop restart 启动状态 停止 重启 以上图片是启动成功之后的状态。 测试完成之后就开始配置Redis。 添加redis.ini文件将以下内容添加。 [program:redis] command/home/redis-4.0.1/src/redis-server autostarttrue autorestarttrue startsecs3 stdout_Logfile/home/celery_Log/redis.log 标准日志输出 stderr_logfile/home/celery_log/redis_error.log 错误日志输出 添加完成之后需要使用以下命令来加载进程。 supervisorctl reload 由于 supervisor 管理的进程不能设置为 daemon 模式故如果 Redis 无法正常启动可以查看一下 Redis 的配置并将daemonize选项设置为 no。 daemonize no 到文件的地步添加如下信息 [program:celery]# 启动命令入口command/var/www/newweb/venv/bin/celery worker -A celery_worker.celery --loglevelinfo# 命令程序所在目录directory/var/www/newweb/# 运行命令的用户名userrootautostarttrueautorestarttrue# 日志地址stdout_logfile/var/log/newymw2.0/supervisor/newymw2.0_celery.log 另外在celery.worker下设置beat定时任务的进程 [program:celery.beat] ;指定运行目录 directory/home/xxx/webapps/yshblog_app/yshblog ;运行目录下执行命令 commandcelery -A yshblog worker --loglevel info --logfile celery_beat.log;启动设置 numprocs1 ;进程数 autostarttrue ;当supervisor启动时,程序将会自动启动 autorestarttrue ;自动重启;停止信号 stopsignalINT worker和beat都设置好之后就可以配置redis了。 [program:redis] ;指定运行目录 directory~/webapps/yshblog_app/lib/redis-3.2.8/ ;执行命令redis-server redis配置文件路径 commandredis-server redis.conf;启动设置 numprocs1 ;进程数 autostarttrue ;当supervisor启动时,程序将会自动启动 autorestarttrue ;自动重启;停止信号 stopsignalINT 启动supervisord supervisord -c /home/supervisor/supervisor.conf 查看进程状态 supervisorctl -c /home/supervisor/supervisor.conf status all 加载supervisord在新添加进程的情况下使用加载新添加一个加载一次。 supervisorctl -c /home/supervisor/supervisor.conf reload 运行测试celery过程中如果出现如下错误(celery不能用root用户来启动)按照以下步骤添加即可解决 测试命令 celery -A celery_sq worker -l info 错误信息 Running a worker with superuser privileges when the worker accepts messages serialized with pickle is a very bad idea!If you really want to continue then you have to set the C_FORCE_ROOT environment variable (but please think about this before you do).User information: uid0 euid0 gid0 egid0 解决办法 celery.py添加如下代码from celery import Celery, platformsplatforms.C_FORCE_ROOT True 测试成功页面  测试成功之后开始测试beat 测试beat命令 celery -A celery_sq beat -l info 测试成功页面 成功之后守护进程就是这个样子的。   [program:redis] command/home/redis-4.0.1/src/redis-server autostarttrue autorestarttrue startsecs3 stdout_Logfile/home/celery_log/redis.log stderr_logfile/home/celery_log/redis_error.log redis.ini [program:celeryworker] directory/root/.pyenv/versions/Celery_prj/celery_sq commandcelery -A celery_sq worker -l info autostarttrue autorestarttrue stdout_logfile/home/celery_log/celery_worker.log stderr_logfile/home/celery_log/celery_worker_error.log worker.ini [program:celerybeat] directory/root/.pyenv/versions/Celery_prj/celery_sq commandcelery -A celery_sq beat -l info autostarttrue autorestarttrue stdout_logfile/home/celery_log/celery_beat.log stderr_logfile/home/celery_log/celery_beat_error.log beat.ini 到此为止windows以及Linux下django-celery守护进程以及配置全部完成    以上由本人全部亲测一步一步写进博客如有问题请及时提出。见到第一时间修改。/抱拳  转载于:https://www.cnblogs.com/wuyongcong/p/9773345.html
http://www.pierceye.com/news/51366/

相关文章:

  • 网站seo关键词排名优化网页设计制作一个网站
  • 班级网站html代码网站seo优化如何做
  • 爱站网工具网页免费游戏
  • 贵金属网站模板快速搭建网站前端插件
  • 河南网站关键词优化wordpress自定义关键词链接文章
  • 网站建设 中企动力东莞后台管理wordpress 提示ftp
  • 网站制作怎么添加图片山西中色十二冶金建设有限公司网站
  • 网站开发人员上级主管互联网代理商联盟平台
  • 物流网站建设方案权限管理wordpress 多人编辑
  • 做网站网络合同移动互联网开发的前景
  • 佛山网站建设找方维网络餐饮网站建设推广
  • 人和机械网站建设做网站明细范文
  • 月嫂云商城网站建设母婴网站源码
  • 安溪县建设局网站大数据是干什么的
  • 网站建设与管理学的是什么百度手机快速排名点击软件
  • 公司内部网站建设管理办法温州市建设局网站
  • 小型公司网站建设论文建筑人才网怎么和招聘人说话
  • wordpress2018主题seo优化销售话术
  • 深圳seo招聘长尾词排名优化软件
  • 在商用网站上用明星的名字做昵称网站结构优化包括哪些
  • 太原网站制作企业重庆优化网站排名
  • 动漫制作专业学习方法游戏优化大师有用吗
  • 浙江省建设厅干部学校门户网站php简单企业网站源码
  • 如何做内容收费的网站应用公园官网登录页面
  • 河北邢台移动网站建设wordpress注册邮件自定义
  • 桐庐县建设局网站要加强分院网站建设
  • 现在做网站用什么网站图片不是本站的对seo有什么不好
  • 做网站申请域名的流程参考消息电子版在线阅读
  • 网站到期不续费西安市做网站公司
  • 上海市崇明县建设中学网站怎么让网站被百度收录