本文由 ChatMoney团队出品

简介

之前的一个简易的项目suno-api。是使用cookie来获取suno-token发起请求的,之前写的简单,并没有做cookie保活,在运行一段时间后cookie会失效,api便失效了。那现在就来实现一个简单的账号保活。

保活原理

账号保活的实现原理比较简单,其实就是每隔一段时间去获取一次token。当然有其他保活方案的也可以大家交流一下。

保活逻辑

我这里的处理比较简单,就是定时请求,

// KeepLive 账号保活
func (s *service) KeepLive() {
ticker := time.NewTicker(time.Second * 5) // 创建一个定时器,每隔5秒触发一次
defer ticker.Stop() // 确保在退出函数时停止定时器 for {
select {
case <-ticker.C: // 当定时器触发时
cookieStr := Conf.Cookie
if cookieStr == "" {
fmt.Println(CookieNotFound)
continue
} token, err := s.GetToken(cookieStr)
if err != nil {
fmt.Println(err.Error())
continue
} Token = token
fmt.Println("协程账号保活token-" + token)
}
}
}

代码测试

main方法中建一个协程处理保活逻辑


func main() {
r := gin.Default()
// 配置加载
viper.Init()
// 使用中间件
internal.RateLimitMiddleware(r, 1, 100)
// Suno账号保活
go internal.SunoService.KeepLive()
// 创建一个路由组,可以为其添加中间件
handler := new(internal.Handler)
v1 := r.Group("/api")
{
v1.POST("/gen", handler.GenMusic)
v1.GET("/feed", handler.GetFeed)
}
_ = r.Run()
}

项目启动

go run main.go

启动后,每隔一段时间则刷新token请求。

​​

关于我们

本文由ChatMoney团队出品,ChatMoney专注于AI应用落地与变现,我们提供全套、持续更新的AI源码系统与可执行的变现方案,致力于帮助更多人利用AI来变现,欢迎进入ChatMoney获取更多AI变现方案!



如何简单实现suno-api账号保活的更多相关文章

  1. phoenix 开发API系列(一)创建简单的http api

    安装 phoenix framework 安装 phoenix 很简单: mix archive.install https://github.com/phoenixframework/archive ...

  2. laravel 实现一个简单的 RESTful API

    创建一个 Article 资源 php artisan make:resource Article 你可以在 app/Http/Resources 目录下看到你刚刚生成的 Article 资源 当然我 ...

  3. 简单封装axios api

    可以在代码逻辑中写axios请求,处理请求结果,但是随着项目越来越大,代码会很繁琐,不容易维护,所以,可以把一些在所有请求中都要处理的逻辑抽取出来,封装成api方法.比如每次请求中都要判断是否有权限, ...

  4. 简单说说Restful API

    前言: 最近一段时间,一直在低头敲代码,开发平台对外交互的API接口,功能已经大体完成了,回过头来看看自己的接口设计文档,不胜感慨,想当初自己也是为"接口名称"想破了脑袋,各种百度 ...

  5. Rancher 2.5特性解读丨更简单友好的API和Dashboard

    本文来自Rancher Labs 关注我们,看K8S干货教程 作者简介 张智博,Rancher中国研发与产品总监.7年云计算领域经验,一直活跃在研发一线,经历了OpenStack到Kubernetes ...

  6. Java框架spring Boot学习笔记(九):一个简单的RESTful API

    RESTful API设计需求如下: User.java package com.springboot.test; public class User { private Long id; priva ...

  7. 基础项目构建,引入web模块,完成一个简单的RESTful API 转载来自翟永超

    简介 在您第一次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复粘贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot ...

  8. 我的C#跨平台之旅(二):开发最为简单的REST API

    添加NuGet引用:Microsoft.AspNet.WebApi.Owin 在启动类启用WebApi: 添加一个Controller类,代码如下: 运行程序并访问:http://localhost: ...

  9. 几个简单的windows API

    //将光标移动到x,y位置void gotoxy(int x, int y){ COORD c; c.X = x; c.Y = y; SetConsoleCursorPosition(GetStdHa ...

  10. 试来试去,WIN下最简单的WIN API开发工具,Pelles C就好啦

    昨晚试过N个,不是太大,就是不容易和WIN API集成. 今早一试就灵了个.... Pelles C. Pelles C是一款windows下的C IDE,支持调试,且为免费.它有一个高效率的链接器, ...

随机推荐

  1. pid算法函数实现,c语言版

    #include <stdio.h> float pid(float setpoint, float process_variable, float kp, float ki, float ...

  2. selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.的解决办法

    跟着视频学习python爬取网页信息,结果出现如下问题: 在网页上搜索各种资料,最终解决该问题,所以记录一下: 1.查看自己浏览器的版本号,点击"三个点--帮助--关于Google Chro ...

  3. 力扣535(java)-TinyURL的加密与解密(中等)

    题目: TinyURL 是一种 URL 简化服务, 比如:当你输入一个 URL https://leetcode.com/problems/design-tinyurl 时,它将返回一个简化的URL  ...

  4. 深度解读《深度探索C++对象模型》之C++虚函数实现分析(一)

    接下来我将持续更新"深度解读<深度探索C++对象模型>"系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文和全部的文章列表. 假如有这样的一段 ...

  5. OceanBase初体验之部署生产标准的三节点分布式集群

    前置条件 OceanBase 数据库集群至少由三个节点组成,所以先准备好3台服务器: IP 配置 操作系统 x.x.x.150 Intel x86 12C 64G内存 1T SSD CentOS 7. ...

  6. 基于 MaxCompute + Hologres 的人群圈选和数据服务实践

    ​简介: 本文主要介绍如何通过 MaxCompute 进行海量人群的标签加工,通过 Hologres 进行分析建模,从而支持大规模人群复杂圈选场景下的交互式体验,以及基于API的数据服务最佳实践. 本 ...

  7. Oracle "脑残" CBO 优化案例

    今天晚上下班回来才有空看群,群友发了一条很简单的慢SQL问怎么优化. 非常简单,我自己模拟的数据. 表结构: -- auto-generated definition CREATE TABLE HHH ...

  8. java 高并发下超购问题解决

    //@desc:java 高并发下锁机制初探 //@desc:码字不宜,转载请注明出处 //@author:张慧源  <turing_zhy@163.com> //@date:2021/1 ...

  9. IIS相关发布错误解决记录

    HRESULT 代码 0x80070021 错误消息: 应用程序"应用程序名称"中的服务器错误HTTP 错误 500.19 - 内部服务器错误HRESULT:0x80070021对 ...

  10. Cesium的HeadingPitchRange 用法

    这个有别于headingpitchroll, headingpitchroll是用在orientation属性上的(比如相机的setView,flyTo,以及entities.add中) Headin ...