redis - 每24小时增加关键天数

标签 redis

我可以通过命令增加关键的“天数”

$ redis-cli
127.0.0.1:6379> set days 1
OK
127.0.0.1:6379> incr days
(integer) 2
127.0.0.1:6379> get days
"2"

我怎样才能每 24 小时自动增加一次?

最佳答案

首先你需要添加celery conf,read doc .像这样的东西:

import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')

app = Celery('allunac', broker='redis://localhost:6379/0')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

我选择 redis 作为代理,因为你在项目中使用它,但你可以选择其他代理,如 RabbitMQ,read doc .

因为您需要定期执行任务,所以您也需要 celery beat,read doc .

添加你的任务:

from datetime import timedelta
from django.core.cache import cache
from celery.decorators import periodic_task

@periodic_task(run_every=timedelta(seconds=30))
def redis_add():
    if not cache.get('days'):
        cache.set('days', 1)  # set initial value
    else:
        cache.incr('days', 2)  # increase by 2

用节拍运行 celery :

celery -A proj worker -l info -B

celery 原木

enter image description here

REDIS

enter image description here

关于redis - 每24小时增加关键天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51904662/

相关文章:

phpredis Redis集群连接对象跨请求重用

redis - Servicestack Authentication IsAuthenticated 始终为 false

redis - 为什么redis中hashmap的负载因子高达5

MySQL - 如何在使用多个过滤器查询时保持可接受的响应时间(我应该使用 Redis 吗?)

node.js - 用node实现redis时,如何将多个json对象添加到hmset或hset或任何数据类型?

ruby-on-rails - Rails 5 - Resque 不处理排队作业

redis - 子进程如何更新父进程中的变量?

redis - 如何使用Apache NiFi RedisDistributedMapCacheClientService在Redis上设置TTL

search - Hscan 一组键中的所有项目

node.js - Redis发布内存泄漏?