部署时使用Django Heroku Clear Cache

fan*_*err 2 django heroku redis

我正在使用Redis缓存(django-redis)为我在Heroku上托管的Django应用程序.更具体一点(虽然我认为它与可能的解决方案无关),但我正在使用Redis Cloud插件.

如何在部署时清除缓存?我正在寻找类似于Heroku Deploy上的Clear Memcached的答案,除了Django,而不是Rails.

fan*_*err 5

弄清楚如何使这项工作(MagnusGraviti的答案与heroku IRC的一些帮助相结合).

步骤1:

创建自定义命令以清除缓存.请参阅https://docs.djangoproject.com/en/dev/howto/custom-management-commands/或安装django-clear-cache https://github.com/rdegges/django-clear-cache.

第2步:

创建一个脚本(例如,scripts/web)以将命令放在[从项目根级别]中.例如,我在前面加上了我的Procfile web命令,python manage.py clearcache &&如下所示:

脚本/网页

python manage.py clearcache && gunicorn myapp.wsgi -b 0.0.0.0:$PORT -w 5 --preload
Run Code Online (Sandbox Code Playgroud)

第3步:

然后,您需要将脚本设置为可执行文件.在我的OSX机器上,命令只是:

chmod a+x scripts/web
Run Code Online (Sandbox Code Playgroud)

第4步:

修改Procfile以运行脚本而不是命令:

web: scripts/web
Run Code Online (Sandbox Code Playgroud)

而已!