询问解决方案。没有国内的云主机,也不想自己写一个 server。 脚本用的是 typescript,关键代码大概这样:
const writeFile = util.promisify(fs.writeFile)
await writeFile(`${repoPath}/${name}.html`, article)
await exec(`cd ${repoPath}; git pull; git add --all; git commit -m "auto commit" && git push origin master`)
1
vanillaxxx 2019-11-21 22:23:36 +08:00 via iPhone
降低 push 频率咋样?
|
2
JiShuTui 2019-11-21 22:26:02 +08:00
加上锁,上一次没结束,这一次就不执行。
另外,你只是自己一个人用吧,每 5 分 push 一次也行啊 |
4
xzc2677 OP @JiShuTui 不是一个人用。加锁是一个备选方案。我在想有没有代替 git 的方案?或者有么有这类的服务,类似于 server 酱。
|
5
xxx749 2019-11-21 22:33:57 +08:00 via Android
加个任务栈,只在 push 结束后 push 第二个任务,爬虫就只管往栈里推就好了吧
|
7
opengps 2019-11-21 22:43:02 +08:00 via Android
用线程池来提交,同时控制好不要让整个线程池都工作起来
|
8
CEBBCAT 2019-11-21 23:16:13 +08:00
先分析问题本质:有一个频繁更新的文件夹,里面有很多 html 文件,需要使用 Coding 的 Page 服务发布出来,似乎 Coding 只提供 git,要是使用 git push 推送的话容易因为上一次 push 未完成影响这一次 push
整个信号量,有 html 生成就给计数器+1,另一边每次 git push 就给计数器-1,push 前记得检查有没有待 git add 的文件 |
9
CEBBCAT 2019-11-21 23:17:30 +08:00
两边各干各的,效率也高
|