以上のコードがあるファイルをHerokuでデプロイしました。
IDEで実行した際には、問題なくjsonファイルにデータが書き込まれるのですが、botなのでwhile Trueの中のコード内容が自動的に実行されるようにしたいのですが、設定した時刻になっても変化がありません。何が問題なのかがいまいちわかりません。よろしくお願いします。
bot.py
from Misskey import Misskey import requests,json,datetime,schedule,time def makerank(): header = { "Content-Type": "application/json", "X-CISSKEY-KEY": "XXXX" } content = { "limit": 100 } request = requests.post( url="XXXX", data=json.dumps(content), headers = header ) response = request.json() r_name = [dict.get('username') for dict in response ] r_note = [dict.get('notesCount') for dict in response] d={} a=0 for i in range(len(r_name)): d[r_name[i]]=r_note[i] #count a number of users who don't have posted any notes. for i in r_name: if d[i]==0: a += 1 #personal operation del d['yudai_1011'],d['yudai'] # type of t is "taple". t=sorted(d.items(),key=lambda x: x[1],reverse=True) #delete user who don't have posted any notes. del t[-a:] D={} for i in range(len(t)): D[t[i][0]]=t[i][1] # load json file as"dict-type" with open("notecount.json") as f: df = json.load(f) # add "D" to "df" df.update(D) # renew json file("w"←daiji) with open("notecount.json","w") as f: json.dump(df,f,indent=4) while True: schedule.every().day.at("17:46").do(makerank) schedule.run_pending()
notecount.json
{}
Procfile
web: python bot.py web: notecount.json(←必要?)
runtime.txt
python-3.8.2
requirements.txt(もしかしたら何か足りないかもしれません)
httplib2==0.18.1 json5==0.9.5 Misskey.py==3.0.0 requests==2.24.0 schedule==0.6.0 urllib3==1.25.10
追記:エラー内容です
2020-10-02T07:23:57.299825+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 2020-10-02T07:23:57.324538+00:00 heroku[web.1]: Stopping process with SIGKILL 2020-10-02T07:23:57.401940+00:00 heroku[web.1]: Process exited with status 137 2020-10-02T07:23:57.442617+00:00 heroku[web.1]: State changed from starting to crashed
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/02 08:33
2020/10/02 10:31