跳转至内容

技术专区

分享有技术含量的内容哦~

896 主题 15.4k 帖子

子版块


  • 问题反馈,相关讨论!

    127 主题
    573 帖子
    Z

    就死了?

  • 建站经验

    建站经验分享!

  • 翻译成golang代码

    3
    0 赞同
    3 帖子
    405 浏览
    ChatGPTC

    malaohu说:

    malaohu 说:

    import os import time import redis env = os.environ.get REDIS_CONF = { "host": env("ALONE_REDIS_HOST", ""), "port": env("ALONE_REDIS_PORT", 6378), "password": env("ALONE_REDIS_PASSWORD", ""), "db": env("BUZZERS_REDIS_DB_LOCK", 1), "socket_timeout": None, "encoding": "utf-8", "encoding_errors": "strict", "decode_responses": True } connection_pool = redis.ConnectionPool(**REDIS_CONF) redis_lock = redis.Redis(connection_pool=connection_pool) redis_lock.ping() class RedisLock(object): """ redis原子锁 """ def __init__(self, prefix="redis_lock", key="", expire_time=2, timeout=2, interval=0.2): """ :param prefix: 原子锁前缀 :param expire_time: 锁过期时间 :param timeout: 最长等待秒数,默认2秒(timeout=0获取不到锁则立即返回) :param interval: 时间间隔 """ self.key = key self.prefix = prefix self.expire_time = expire_time self.timeout = timeout self.interval = interval self._lock = False # 是否获得锁 @property def rds_key(self): return "%s|%s" % (self.prefix, self.key) def __del__(self): """ 该对象释放的时候 删除锁 :return: """ if self._lock: self.delete_lock() def acquire(self): """ 获取用户锁,默认最长2秒等待 :return: True 获取到锁 False 获取锁失败 """ start_time = time.time() end_time = start_time + self.timeout while time.time() > result = redis_lock.set( self.rds_key, 1, ex=self.expire_time, nx=True ) if result: self._lock = True return True time.sleep(self.interval) return False def release(self): """ 删除用户锁 :return: """ redis_lock.delete(self.rds_key) self._lock = False def __enter__(self): if not self._lock: return self.acquire() return False def __exit__(self, type, value, traceback): if self._lock: self.release() def __del__(self): self.release()

    请将上面代码用golang实现一下

    package redis import ( "github.com/go-redis/redis/v7" "time" ) type RedisLock struct { Prefix string Key string ExpireTime int Timeout int Interval int _lock bool redisClient *redis.Client redisOptions *redis.Options } func NewRedisLock(prefix string, key string, expireTime int, timeout int, interval int) *RedisLock { return &RedisLock{ Prefix: prefix, Key: key, ExpireTime: expireTime, Timeout: timeout, Interval: interval, _lock: false, redisClient: nil, } } func (lock *RedisLock) GetRedisKey() string { return lock.Prefix + "|" + lock.Key } func (lock *RedisLock) InitRedisClient(options *redis.Options) { lock.redisClient = redis.NewClient(options) lock.redisOptions = options } func (lock *RedisLock) Acquire() bool { startTime := time.Now().Unix() endTime := startTime + int64(lock.Timeout) for time.Now().Unix() < endTime { result := lock.redisClient.SetNX(lock.GetRedisKey(), 1, time.Duration(lock.ExpireTime)*time.Second).Val() if result { lock._lock = true return true } time.Sleep(time.Duration(lock.Interval) * time.Second) } return false } func (lock *RedisLock) Release() { lock.redisClient.Del(lock.GetRedisKey()) lock._lock = false } func (lock *RedisLock) Lock() bool { if !lock._lock { return lock.Acquire() } return false } func (lock *RedisLock) Unlock() { if lock._lock { lock.Release() } }
  • chrome 支持划词右键翻译了

    1
    0 赞同
    1 帖子
    326 浏览
    尚无回复
  • Web3.0在中国能否实现?

    2
    0 赞同
    2 帖子
    425 浏览
    ChatGPTC

    malaohu说:

    Web3.0在中国能否实现?

    是的,中国正在努力实现Web3.0的目标,尤其是在移动互联网、物联网、大数据、云计算、人工智能等方面。为此,中国政府和企业正在投入大量资源推动Web3.0的发展,并加大了对科技成果的引进和应用,以支持Web3.0的实现。

  • Telegram客户端字体从宋体改成微软雅黑

    1
    1 赞同
    1 帖子
    747 浏览
    尚无回复
  • zlibrary 可以领个人三级域名了

    1
    0 赞同
    1 帖子
    4k 浏览
    尚无回复
  • 有aihao.cc邀请码我就买,私信我

    1
    0 赞同
    1 帖子
    257 浏览
    尚无回复
  • 运维:服务器多网口导致的网络不通

    1
    0 赞同
    1 帖子
    321 浏览
    尚无回复
  • windows的Lunix子系统 wsl 2全记录

    1
    0 赞同
    1 帖子
    385 浏览
    尚无回复
  • CentOS 7.9 安装 Python3.11.1

    1
    0 赞同
    1 帖子
    271 浏览
    尚无回复
  • 推荐个技术分享频道

    2
    0 赞同
    2 帖子
    712 浏览
    S

    资源分享频道
    油油分享频道
    分享开源、优秀的软件,有趣、实用的网站资源
    https://t.me/youyousharechannel

  • NodeBB获取未读消息列表接口?

    10
    0 赞同
    10 帖子
    656 浏览
    ChatGPTC

    malaohu说:

    ChatGPT 说:

    malaohu说:

    NodeBB 通知设置已读接口?

    NodeBB有一个API叫做“markAllNotificationsRead”,它可以完成这个任务。它的文档可以在这里找到:https://docs.nodebb.org/api/notifications/#markallnotificationsread

    这个API不存在

    ,只有“markTopicNotificationsRead”和“markNotificationRead”两个API。它们的文档可以在这里找到:

    https://docs.nodebb.org/api/notifications/#marktopicnotificationsread

    https://docs.nodebb.org/api/notifications/#marknotificationread

  • 0 赞同
    1 帖子
    301 浏览
    尚无回复
  • 用轻量应用服务器搭建Trilium笔记

    1
    0 赞同
    1 帖子
    746 浏览
    尚无回复
  • 视频解析、无水印下载、百度网盘无限速下载

    1
    0 赞同
    1 帖子
    939 浏览
    尚无回复
  • DeepWeb数据库是啥

    4
    0 赞同
    4 帖子
    537 浏览
    ChatGPTC

    jake说:

    我的账号为什么限制了,一个小时只有一次提问机会

    因为知乎为了营造良好的交流氛围,会对用户的行为进行审核,以确保提问内容和发言都是有意义的。如果发现某个用户在短时间内发布了大量可能无意义的提问,平台会对其进行一定程度的限制,以保护知乎社区的质量。

  • JetBrains 放弃 AppCode IDE

    2
    0 赞同
    2 帖子
    650 浏览
    V

    。。。。就只能用 xcode 写了么。

  • 2023圣诞节新年PSD精品背景图模板

    1
    0 赞同
    1 帖子
    287 浏览
    尚无回复
  • OpenAI预测 名侦探柯南 的大结局

    6
    0 赞同
    6 帖子
    654 浏览
    ChatGPTC

    malaohu说:

    ChatGPT 说:

    malaohu说:

    ChatGPT 说:

    malaohu说:

    名侦探柯南 的大结局

    大结局是指柯南的最终案件,即“聪明的犯罪者”。在这个案件中,毛利兰和发条仔终于找到了犯罪者,阿笠博士。但是,在柯南和阿笠博士之间,存在着一个秘密,那就是阿笠博士是柯南的父亲。阿笠博士最初只是因为想要保护柯南,所以他做出了一系列的犯罪行为,以便拯救柯南,但最终还是被柯南揭穿了。

    最终,阿笠博士被逮捕,而柯南也成功地解决了“聪明的犯罪者”的谜题。之后,柯南和他的伙伴们又回到了青山探事务所,继续他们的探案之旅。当柯南和他的伙伴们回到了青山探事务所之后,柯南仍然努力工作,继续侦破案件,并不断努力实现他的梦想:成为一名世界级的探案家。

    灰原最后的结局呢?

    灰原哀最终以冤枉而告终,被认定为制造“毒品事件”的罪魁祸首,最终被服刑。但柯南却没有放弃,他把自己细心调查的证据拿给检察官,最终让灰原哀得到公正的判决,并获得赦免。这也是柯南的理想,为了让每个人都能得到正义,而他也实现了自己的梦想,成为一名伟大的侦探。

    以上结局反转一下。来500字描述一下。

    灰原哀最终被认定为制造“毒品事件”的罪魁祸首,接受服刑,而柯南却没有放弃,他一直努力调查,终于拿出了反对灰原哀的证据,坚持让他受到公正的判决。

    可是,即使柯南提出了反对意见,法庭也坚持认定灰原哀为罪魁祸首,最终柯南也没能改变法庭的判决,灰原哀被判处有期徒刑。

    尽管柯南没有改变法庭的判决,他仍然坚持不懈地调查,最终他发现了真相,原来真凶是某个叫做毛利小五郎的罪犯,而阿笠博士只是因为某种原因,暂时扮演了灰原哀的角色,将罪责推给了灰原哀。

    柯南立刻把他的发现告诉了检察官,随后进行了深入的调查,最终证明灰原哀是冤枉,得到了赦免,柯南也实现了自己的梦想,成为一名伟大的侦探。这也是柯南一直坚持不懈的理由,他期望每个人都能得到正义,也为自己实现了梦想。

  • 大佬们有没有服务器运维的培训视频?

    9
    0 赞同
    9 帖子
    696 浏览
    9

    @xiaowen 主要是官网现在不好用啊

  • 目前轻量的规则引擎有哪些?优缺点?

    2
    0 赞同
    2 帖子
    558 浏览
    ChatGPTC

    malaohu说:

    目前轻量的规则引擎有哪些?优缺点?请详细阐述一下。

    轻量级规则引擎有Drools,EasyRules,JRuleEngine,jEval,Owls,JBoss Rules,RuleX,FICO Blaze Advisor,JRules,Agenda,OpenL,HippoRules等。

    Drools:Drools是一个通用的规则引擎,支持多种语言,如Java,Python, JavaScript等。Drools可以构建和部署规则,并支持简单的规则调试和监控。Drools的优点是,它具有完整的规则管理功能,支持多个应用程序的规则,并具有良好的可扩展性。缺点是,Drools不支持可视化编辑,需要编写代码,而且它不支持并发处理。

    EasyRules:EasyRules是一个轻量级的Java规则引擎,用于在Java应用程序中进行规则管理。EasyRules支持简单的规则定义和触发,并支持经典的“if-then”规则定义。EasyRules的优点是,它支持简单的规则定义,与其他Java应用程序无缝集成,并且支持单个规则的调试和跟踪。缺点是,EasyRules不支持复杂规则,并且只能用于Java环境。

    JRuleEngine:JRuleEngine是一个轻量级的Java规则引擎,用于处理规则驱动的业务逻辑。它支持基于XML的规则定义,可以构建规则引擎的核心结构,并支持对规则的调试和修改。JRuleEngine的优点是,它支持XML格式的规则定义,可以构建规则引擎的核心结构,并且支持多个规则实例的调试和修改。缺点是,JRuleEngine只支持XML格式的规则定义,不支持可视化编辑,并且只能用于Java环境。

    jEval:jEval是一个轻量级的Java规则引擎,用于构建和执行规则。jEval支持JavaScript脚本式的规则定义,并支持规则的调试和修改。jEval的优点是,它支持JavaScript脚本式的规则定义,可以快速构建和部署规则,并且支持多个规则实例的调试和修改。缺点是,jEval不支持可视化编辑,只能用于Java环境,并且不支持复杂的规则。

    Owls:Owls是一个轻量级的规则引擎,用于在Web服务中进行规则管理。Owls支持基于XML的规则定义,可以构建规则引擎的核心结构,并支持对规则的调试和修改。Owls的优点是,它支持XML格式的规则定义,可以构建规则引擎的核心结构,并且支持多个规则实例的调试和修改。缺点是,Owls不支持可视化编辑,只能用于Web服务,并且不支持复杂的规则。