

webからスクレイピングした情報をLINE Notifyを使って通知するPythonアプリをherokuに公開しました。

スケジューラーを使ってもいないのに、定期的に実行されて、Lineに通知が来ます。

herokuの仕様なのでしょうか。

プランはfreeプランです。  
herokuのfreeプランは再起動をすると聞いたことがあります。

再起動のタイミングでmain.pyが実行されているのでしょうか。

コードを追加しました。(main.py)

[code]

    import requests
    from bs4 import BeautifulSoup
    import urllib.request
    
    r = requests.get("*************")
    
    soup = BeautifulSoup(r.content, "html.parser")
    
    css1 = soup.find_all("p", class_ = "top-text")
    t_text = css1[0].getText()
    
    
    msg = t_text
    
    LINE_TOKEN =  "****************"
    LINE_NOTIFY_URL = "*******************"
    
    def send_jt_information(msg):
        method = "POST"
        headers = {"Authorization": "Bearer %s" % LINE_TOKEN}
        payload = {"message": msg}
        try:
            payload = urllib.parse.urlencode(payload).encode("utf-8")
            req = urllib.request.Request(
                url=LINE_NOTIFY_URL, data=payload, method=method, headers=headers)
            urllib.request.urlopen(req)
        except Exception as e:
            print ("Exception Error: ", e)
            sys.exit(1)
    
    def main():
        send_jt_information(msg)
    
    
    if __name__ == '__main__':
        main()
    
[/code]


CC BY-SA 4.0
2019-04-19T11:47:48.537
54319
2019-06-20T06:01:20.507
2019-04-19T13:44:05.273
32771
32771
question
python python3 heroku line
LINE Notifyを使ったPythonアプリをherokuに公開したが、勝手に実行されるのはなぜ？


公式のドキュメントのこのあたりが参考になるのではないでしょうか。

<https://devcenter.heroku.com/articles/dynos#restarting>

> Dynos are also restarted (cycled) at least once per day to help maintain the
> health of applications running on Heroku. Any changes to the local
> filesystem will be deleted. The cycling happens once every 24 hours (plus up
> to 216 random minutes, to prevent every dyno for an application from
> restarting at the same time). Manual restarts (heroku ps:restart) and
> releases (deploys or changing config vars) will reset this 24 hour period.

質問者さんの場合は 6 時間ごとにとのことですが、 at least once per day とあるので、正確に何時間ごとに restart
されるかというのは仕様としては明示されてはいないようです。


CC BY-SA 4.0
2019-04-20T04:23:17.697
54328
2019-04-20T04:23:17.697
28632
54319
answer