2016-03-02 56 views
0

我有一个django应用程序,它将采取从MySQL的备份取决于给定的参数。 我有一个观点,这将得到以下一form.The用户参数的参数:如何在django中安排任务?

1.mysql用户名

2.mysql密码

3.database名

4 .backup path

现在我将参数作为参数传递给我写的函数,它将采用mysql备份。现在我需要将这个作为cronjobs类的东西与芹菜或其他类似对此。 这是我的看法:

def home(request): 
    if request.method == 'POST': 
     form = myform(request.POST) 
     if form.is_valid(): 
      mysqlusername = form.cleaned_data['mysqlusername'] 
      mysqlpassword = form.cleaned_data['mysqlpassword'] 
      database_name = form.cleaned_data['database_name'] 
      backuppath = form.cleaend_data['backuppath'] 

      backupfunction(mysqlusername, mysqlpassword, database_name, backkuppath) 
    else: 
      form = myform() 

def backupfunction(mysqlusername, mysqlpassword, database_name, backuppath): 
      (code to take backup) 
+0

除非您在某处存储用户名/密码,否则cronjob将无法获得所需的参数。你是否将证书存储在某个地方? – karthikr

+0

目前上面的代码工作正常,但我没有使用cronjobs我使用os.system()采取备份 – pythonnoob

回答

0

您可以使用django芹菜。其中提供调度程序以及异步任务。详情 https://www.caktusgroup.com/blog/2014/06/23/scheduling-tasks-celery/

您必须在您的应用程序中创建一个task.py文件。并在该文件中写入您的功能

from celery import shared_task 

@shared_task() 
def testschduler(): 
    print "scdule task" 

之后,只需去管理面板创建一个crowntab工作。在数据库中。这将由celryd自动读取。

+1

虽然建议是好的,你应该添加一个最小的代码示例如何设置简单的任务 - 其他方式您的答案可以标记为“链接唯一答案” –

+0

好吧,事情是我需要从用户意味着从一个表格 – pythonnoob

+0

给予crontab输入django admin提供表单来创建crontab。你可以重写或使用它。用芹菜足够用了 –