django中管理程序1
为了解决启动关闭程序方便,在django中启动结束任务的问题。
urls.py
- ################DJANGO start kill job############################
- (r'^startjob/$', app_view.startjob),
- (r'^showjob/$', app_view.showjob),
- (r'^rmjob/$', app_view.rmjob),
- ################DJANGO start kill job############################
views.py
- from os import path
- TASKS_ROOT = path.dirname(path.abspath(path.dirname(__file__)))
- PYTHON_ROOT = '/usr/bin/python'
- job_workspace = path.join(TASKS_ROOT,'app').replace('\\', '/')
- from tempfile import mkstemp
- from os import fdopen,unlink,kill
- from subprocess import Popen
- import signal
- from django.http import HttpResponse
- def startjob(request):
- """Start a new long running process unless already started."""
- if not request.session.has_key('job'):
- #if True:
- # create a temporary file to save the resuls
- outfd,outname=mkstemp()
- request.session['jobfile']=outname
- outfile=fdopen(outfd,'a+')
- print job_workspace
- proc=Popen((PYTHON_ROOT+" myjob.py").split(),shell=False,stdout=outfile,cwd=job_workspace)
- # remember pid to terminate the job later
- request.session['job']=proc.pid
- print proc.pid
- return HttpResponse('A <a href="/showjob/">new job</a> has started.')
- def showjob(request):
- """Show the last result of the running job."""
- if not request.session.has_key('job'):
- return HttpResponse('Not running a job.'+\
- '<a href="/startjob/">Start a new one?</a>')
- else:
- filename=request.session['jobfile']
- results=open(filename)
- lines=results.readlines()
- try:
- return HttpResponse(lines[-1]+\
- '<p><a href="/rmjob/">Terminate?</a>')
- except:
- return HttpResponse('No results yet.'+\
- '<p><a href="/rmjob/">Terminate?</a>')
- return response
- def rmjob(request):
- """Terminate the runining job."""
- if request.session.has_key('job'):
- job=request.session['job']
- filename=request.session['jobfile']
- try:
- kill(job,signal.SIGKILL) # unix only
- unlink(filename)
- except OSError, e:
- pass # probably the job has finished already
- del request.session['job']
- del request.session['jobfile']
- return HttpResponseRedirect('/showjob/') # showjob
效果:
django中管理程序1的更多相关文章
- django中管理程序2
升级版 from os import path TASKS_ROOT = path.dirname(path.abspath(path.dirname(__file__))) PYTHON_ROOT ...
- 异步任务队列Celery在Django中的使用
前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...
- Mysql事务探索及其在Django中的实践(二)
继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...
- Mysql事务探索及其在Django中的实践(一)
前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...
- Django 中url补充以及模板继承
Django中的URL补充 默认值 在url写路由关系的时候可以传递默认参数,如下: url(r'^index/', views.index,{"name":"root& ...
- django中css问题
django中加载的css,js,图片其中js和图片可以加载出来,而css没有效果.原因如下: 这是因为你安装的某些IDE 或者其他更改了注册表导致的系统的注册表\HKEY_CLASSES_ROOT\ ...
- 在Django中进行注册用户的邮件确认
之前利用Flask写博客时(http://hbnnlove.sinaapp.com),我对注册模块的逻辑设计很简单,就是用户填写注册表单,然后提交,数据库会更新User表中的数据,字段主要有用户名,哈 ...
- django中tinymce添加图片上传功能
主要参考以下: https://pixabay.com/en/blog/posts/direct-image-uploads-in-tinymce-4-42/ http://blog.csdn.net ...
- django中migration文件是干啥的
昨天很蠢的问leader git push的时候会不会把本地的数据库文件上传上去,意思是django中那些migration文件修改之后会不会上传. 然后得知不会,因为所有的数据库都存在本机的mysq ...
随机推荐
- win10子系统Ubuntu18.04下安装图形界面
前提:windows 10 已经安装WSL(windows subsystem for linux),并能正确运行Bash. 要想使用Linux的图形用户界面通常有两种方法,一种是使用X-Window ...
- Vue学习(四):条件渲染
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 使用hibernate连接Oracle时的权限问题
在使用hibernate对象关系映射连接和创建表的时候,会涉及到很多权限问题,有些数据库管理会将权限设的很细,我们可以根据后台日志错误和异常信息作出判断. 比如下图所示这个错误(这是我在给银行投产系统 ...
- Struts2(四.注册时检查用户名是否存在及Action获取数据的三种方式)
一.功能 1.用户注册页面 <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- GraphSAGE 代码解析(三) - aggregators.py
原创文章-转载请注明出处哦.其他部分内容参见以下链接- GraphSAGE 代码解析(一) - unsupervised_train.py GraphSAGE 代码解析(二) - layers.py ...
- DFS(5)——hdu1728逃离迷宫
一.题目回顾 题目链接:逃离迷宫 Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地 ...
- PAT 1020 月饼
https://pintia.cn/problem-sets/994805260223102976/problems/994805301562163200 月饼是中国人在中秋佳节时吃的一种传统食品,不 ...
- (转)mongdb性能优化收集
一.数据库最大连接数问题当你在后台日志中,发现大量“connection refused because too many open connections: 819”信息时,一般跟你没有设置合适的最 ...
- C#怎么调用方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Exep ...
- BZOJ4567 SCOI2016背单词(trie+贪心)
倒过来变成查询前缀.考虑怎么排序.第一条代价n*n就相当于inf,说明一个单词的所有前缀都要排在它前面.那么串的依赖关系就是trie的结构.二三条说明代价是Σidi-idfa,那么显然最后的编号应该是 ...