11.Renderじゃダメだ…

Python

追記:KeyValueStoreでもよさそう

RedisはKeyValueStoreの1種です

Redisはデータ永続化ができて、KeyValueStoreはできないものもあります

永続化するとデータがディスクに保存されますが、できないとサービスが終了した瞬間にDBのデータが消えます

バックグラウンド処理ができない

Youtubeの動画をyt_dlpでダウンロードするDjangoのサイトをつくったので、Renderにデプロイしてみました

https://django-render-1qvh.onrender.com

動きません…

動画のダウンロードのようなバックグラウンド処理は非常に長い時間がかかるので、途中でWORK TIMEOUTとなり、強制的に処理が中断されてしまうようです

(これはRenderに限らず大抵のサーバーで起こるようです)

これを回避するためにPythonではCeleryとRedisというオープンソースを使うのですが、Renderはたいおうしていません

正確に言うと2024年になってRedisがなくなり、KeyValueというやつにかわってしまいました(KeyValueはRedisの代わりにはならないそうです)

HerokuもしくはAWSならできるようです(By ChatGPT)

ストレージがない

Renderには安いストレージがないので、VercelみたいにSupabaseのような外部ストレージを必要とします

どんなサイトがRender向きなのか

バックグラウンド処理がなく、ストレージも特に必要としないちんけなサイト

参考

Djangoで非同期処理を実装する方法(Celery、Redis)

https://dot-blog.jp/news/django-async-celery-redis-mac/

BACK