我需要创建一个独立的脚本来访问数据库,从表中获取数据并对其进行处理并将其存储到另一个表中。我也在使用 django-rq 来运行这个脚本。
- 应该将此脚本放在 django 项目结构中的什么位置?
- 如果不使用views.py,我应该如何使用django-rq 运行这个脚本?
如果我正确理解您的情况,我会使用自定义管理命令https://docs.djangoproject.com/en/1.7/howto/custom-management-commands/
在您的一个视图中导入脚本的函数和 django-rq 并继续在视图中进行处理。
我刚刚解决了同样的问题,一个增加的变量是我想每小时运行一次工作,所以除了Django-RQ我还使用RQ-Scheduler。
在这种方法中,您在创建的作业中安排函数调用
scheduler.schedule(
scheduled_time=datetime.utcnow(), # Time for first execution, in UTC timezone
func=func, # Function to be queued
args=[arg1, arg2], # Arguments passed into function when executed
kwargs={'foo': 'bar'}, # Keyword arguments passed into function when executed
interval=60, # Time before the function is called again, in seconds
repeat=10 # Repeat this number of times (None means repeat forever)
)
我在我的 Django 项目的根目录中创建了一个模块my_helpers.py
,它具有可以完成我想要的工作并根据需要安排任务的功能。然后在一个单独的外壳中python manage.py shell
,我导入助手并运行我的函数来安排任务。
我希望这会有所帮助,它对我有用。