Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

加上heroku的自动切换功能吧 #8

Closed
honeyshine75 opened this issue Feb 12, 2022 · 19 comments
Closed

加上heroku的自动切换功能吧 #8

honeyshine75 opened this issue Feb 12, 2022 · 19 comments

Comments

@honeyshine75
Copy link

我得想法是这样的:
原因
heroku每个账号550h/月,只能用20多天;
功能描述
hreoku免费实例自动切换;
实现
方法1
每天凌晨利用action功能自动stop,早上自动start;
缺点
不一定哪天凌晨会使用,或者晚上因为不能访问Google而耗电增加;

方法2
两个heroku账号,上半个月和下半个月切换。或者白天晚上切换。
缺点
实现起来可能比较复杂,如果要客户端无感切用cf的话,需要action操作cf

@zizifn
Copy link
Owner

zizifn commented Feb 12, 2022 via email

@honeyshine75
Copy link
Author

github的action自带cron应该可以的,需要稍稍改造下,把现在的参数去掉,改成3个分开的action。其中stop和start需要设置cron规则。

@honeyshine75
Copy link
Author

我简单的实现了一下,说下我的思路:
1. cf workers改进
增加语句
if(new Date().getDate() > 15) { url.hostname="xx1.herokuapp.com"; } else { url.hostname="xx2.herokuapp.com"; }
2. 新增库和actions cron
库1: 每月1日部署和启动,每月15日停止
库2: 每月15日部署和启动,每月1日停止

@zizifn
Copy link
Owner

zizifn commented Feb 13, 2022 via email

@zizifn zizifn linked a pull request Feb 15, 2022 that will close this issue
@zizifn zizifn removed a link to a pull request Feb 15, 2022
@zizifn zizifn linked a pull request Feb 15, 2022 that will close this issue
@zhaoguomanong
Copy link

我简单的实现了一下,说下我的思路: 1. cf workers改进 增加语句 if(new Date().getDate() > 15) { url.hostname="xx1.herokuapp.com"; } else { url.hostname="xx2.herokuapp.com"; } 2. 新增库和actions cron 库1: 每月1日部署和启动,每月15日停止 库2: 每月15日部署和启动,每月1日停止

其实根据日期在workers里面进行分流,上半月用domain1,下半个月用domain2 已经够用了。将两个domain对应的容器全部一直开启不用管他,超过半小时没访问自己就睡眠了。 在用domain1的时候没必要手动stop 另外一个。Heroku会自动帮你搞定。

@zizifn
Copy link
Owner

zizifn commented Apr 12, 2022

我简单的实现了一下,说下我的思路: 1. cf workers改进 增加语句 if(new Date().getDate() > 15) { url.hostname="xx1.herokuapp.com"; } else { url.hostname="xx2.herokuapp.com"; } 2. 新增库和actions cron 库1: 每月1日部署和启动,每月15日停止 库2: 每月15日部署和启动,每月1日停止

其实根据日期在workers里面进行分流,上半月用domain1,下半个月用domain2 已经够用了。将两个domain对应的容器全部一直开启不用管他,超过半小时没访问自己就睡眠了。 在用domain1的时候没必要手动stop 另外一个。Heroku会自动帮你搞定。

自从我知道,app会自己休眠,我就没有一直没想好,怎么做这个功能。另外repo 已经支持,根据不同得github环境配置不同heroku 账户。

@honeyshine75
Copy link
Author

我简单的实现了一下,说下我的思路: 1. cf workers改进 增加语句 if(new Date().getDate() > 15) { url.hostname="xx1.herokuapp.com"; } else { url.hostname="xx2.herokuapp.com"; } 2. 新增库和actions cron 库1: 每月1日部署和启动,每月15日停止 库2: 每月15日部署和启动,每月1日停止

其实根据日期在workers里面进行分流,上半月用domain1,下半个月用domain2 已经够用了。将两个domain对应的容器全部一直开启不用管他,超过半小时没访问自己就睡眠了。 在用domain1的时候没必要手动stop 另外一个。Heroku会自动帮你搞定。

这个特性有文档吗?如果这样的话只需要定期更新两个heroku就可以了

@zizifn
Copy link
Owner

zizifn commented Apr 12, 2022

我简单的实现了一下,说下我的思路: 1. cf workers改进 增加语句 if(new Date().getDate() > 15) { url.hostname="xx1.herokuapp.com"; } else { url.hostname="xx2.herokuapp.com"; } 2. 新增库和actions cron 库1: 每月1日部署和启动,每月15日停止 库2: 每月15日部署和启动,每月1日停止

其实根据日期在workers里面进行分流,上半月用domain1,下半个月用domain2 已经够用了。将两个domain对应的容器全部一直开启不用管他,超过半小时没访问自己就睡眠了。 在用domain1的时候没必要手动stop 另外一个。Heroku会自动帮你搞定。

这个特性有文档吗?如果这样的话只需要定期更新两个heroku就可以了

就在readme的开始部分。
image

@zhaoguomanong
Copy link

我简单的实现了一下,说下我的思路: 1. cf workers改进 增加语句 if(new Date().getDate() > 15) { url.hostname="xx1.herokuapp.com"; } else { url.hostname="xx2.herokuapp.com"; } 2. 新增库和actions cron 库1: 每月1日部署和启动,每月15日停止 库2: 每月15日部署和启动,每月1日停止

其实根据日期在workers里面进行分流,上半月用domain1,下半个月用domain2 已经够用了。将两个domain对应的容器全部一直开启不用管他,超过半小时没访问自己就睡眠了。 在用domain1的时候没必要手动stop 另外一个。Heroku会自动帮你搞定。

这个特性有文档吗?如果这样的话只需要定期更新两个heroku就可以了

我说的是app会自己睡眠,这个经过测试确实没访问半小时后自己就自动睡眠了。

@zizifn
Copy link
Owner

zizifn commented Apr 12, 2022

我简单的实现了一下,说下我的思路: 1. cf workers改进 增加语句 if(new Date().getDate() > 15) { url.hostname="xx1.herokuapp.com"; } else { url.hostname="xx2.herokuapp.com"; } 2. 新增库和actions cron 库1: 每月1日部署和启动,每月15日停止 库2: 每月15日部署和启动,每月1日停止

其实根据日期在workers里面进行分流,上半月用domain1,下半个月用domain2 已经够用了。将两个domain对应的容器全部一直开启不用管他,超过半小时没访问自己就睡眠了。 在用domain1的时候没必要手动stop 另外一个。Heroku会自动帮你搞定。

这个特性有文档吗?如果这样的话只需要定期更新两个heroku就可以了

我说的是app会自己睡眠,这个经过测试确实没访问半小时后自己就自动睡眠了。

https://devcenter.heroku.com/articles/free-dyno-hours#dyno-sleeping

@zizifn
Copy link
Owner

zizifn commented Apr 14, 2022

cloudflare tunnel 这一步我按教程走,但是Tunnels里status 一直显示inactive

麻烦您新开个issue,隐去信息,截个图?

@hzdlive
Copy link

hzdlive commented Apr 14, 2022

不好意思,我token复制时,把全部了的都复制进去了。后来仔细检查,只制复制token段就可以了。谢谢
可以删除我的发言。

@conancheng
Copy link

image
多账号一直出错。。。换了eu区也不行

@zizifn
Copy link
Owner

zizifn commented Apr 26, 2022

image 多账号一直出错。。。换了eu区也不行

看错误,你的 v2rayconan 环境,app 名字 应该和主环境一样了。。。或者是和其他人的名字一样了,请确保名字唯一性。。。

@conancheng
Copy link

环境名字和app名字都要跟原来的主环境不一样?

@zizifn
Copy link
Owner

zizifn commented Apr 26, 2022

环境名字和app名字都要跟原来的主环境不一样?

环境的意思,是你有多个heroku 账号,或者你想部署多个不同的heroku app。。。当然推荐不应该和主环境一致。。如果一样,就没有必要创建环境了。。你这个错误,大概率是 APP_NAME 和其他人的app名字重复。。APP_NAME必须不能和任何人的有重复。

@zizifn
Copy link
Owner

zizifn commented Apr 26, 2022

环境名字和app名字都要跟原来的主环境不一样?

环境的意思,是你有多个heroku 账号,或者你想部署多个不同的heroku app。。。当然推荐不应该和主环境一致。。如果一样,就没有必要创建环境了。。你这个错误,大概率是 APP_NAME 和其他人的app名字重复。。APP_NAME必须不能和任何人的有重复。

另外eu 是支持的,但是你必须先把自己的app 删除掉。。因为heroku 不支持app 直接切换区域。一个app 区域在创建时候就已经确定,后续deploy 改变不了。。

@conancheng
Copy link

环境名字和app名字都要跟原来的主环境不一样?

环境的意思,是你有多个heroku 账号,或者你想部署多个不同的heroku app。。。当然推荐不应该和主环境一致。。如果一样,就没有必要创建环境了。。你这个错误,大概率是 APP_NAME 和其他人的app名字重复。。APP_NAME必须不能和任何人的有重复。

嗯 改了后成功了。。。

@conancheng
Copy link

conancheng commented Apr 26, 2022

也是见鬼了。。。。部署成功后主的可以连的上 环境里的备用的死活连接不上
image
cloudflare里面我也单独设置了,出错的GET这个如下:
image
正常的这个GET如下:
image

难度US区环境里面不能用?需要部署到EU区才行?

@zizifn zizifn closed this as completed May 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants