Jaq*_*sos 6 python django cron amazon-web-services amazon-elastic-beanstalk
我正在开发一个软件功能,我必须使用Django + cron + AWS定期删除文件.问题是我无法使其发挥作用.什么是让它发挥作用的最佳方法?我错过了一些AWS配置吗?我已经配置了一个Web服务器和一个工作环境,在它们上部署了相同的应用程序版本.任务是映射到url的视图(访问url函数执行).工作者环境有一条确认消息:
从cron.yaml成功加载了1个计划任务.
但是对于worker access_log也有403错误:
"POST/networks_app/delete_expired_files HTTP/1.1"403 2629" - ""aws-sqsd/2.0"
cron.yaml:
version: 1
cron:
- name: "delete_expired_files"
url: "/networks_app/delete_expired_files"
schedule: "10 * * * *"
Run Code Online (Sandbox Code Playgroud)
在urls.py上的 url映射:
urlpatterns = [
url(r'^delete_expired_files', views.delete_expired_files, name='delete_expired_files'),
]
Run Code Online (Sandbox Code Playgroud)
用于删除views.py文件的函数:
def delete_expired_files(request):
users = DemoUser.objects.all()
for user in users:
documents = Document.objects.filter(owner=user.id)
if documents:
for doc in documents:
now = timezone.now()
if now >= doc.date_published + timedelta(days=doc.owner.group.valid_time):
doc.delete()
Run Code Online (Sandbox Code Playgroud)
我的IAM角色是:
AmazonSQSFullAccess
AmazonS3FullAccess
AWSElasticBeanstalkFullAccess
AmazonDynamoDBFullAccess
如果我通过浏览器访问URL,则执行任务(删除过期的文件).但是,工作者环境应该访问URL并自动执行任务,而不仅仅是当我通过浏览器访问URL时.我怎样才能使它工作?
| 归档时间: |
|
| 查看次数: |
235 次 |
| 最近记录: |