2016-11-30 20 views
0

私はダッシュで区切られたメッセージと指定された時間を入力できるコマンドでボットを持っています。これはボットに渡され、ボットは指定された時間が経過した後にメッセージをユーザに思い出させます合格。setTimeoutはHerokuフリーのdyno時間を使用しますか?

function reminder(msg) { 
    const message = msg.content.replace(this.prefix+this.name+" ",""); 
    const params = message.split("-"); 
    setTimeout(() => { 
     msg.channel.sendMessage(params[0]); 
    }, (parseInt(params[1])*1000)); 
} 

私はHerokuの上でこのボットを実行する予定が、私はちょうど十代だと、これは私がHerokuのは、毎月私に与え自由ダイノの時間を使用する必要が私のための趣味であるから。誰かがこのボットの機能を使用すると、setTimeoutのタイミング機構は私のdynosを有効にして、無料のdyno時間を使用しますか?

編集:あなたがあなたのうちのどれかが無い素晴らしい:)

+0

はい私はそう信じています。あなたがまだそれをしていないなら、あなたはamazon awsで1年間無料のサーバを手に入れることができます。おそらくあなたのアプリにもっと適しています – xShirase

答えて

0

はい可能となることを知っていることをHerokuのより良い無料の代替があると思われる場合。

は、それが自由なダイナモの時間を使うことになるので、そうYES Herokuのサーバは、まだ目を覚ましになる、のは、setTimeoutを内のロジックは、すべて未満30分後に実行されますと仮定しましょう。

メッセージが30分を超えて送信される場合は、1時間としましょう。この期間にサーバーに接続する要求がない場合、サーバーは30分間使用してもスリープするため、NO到着要求がない限り長く。

ヘロクの無料ダイノア時間についてはhereをご覧ください。

+0

インスタンスがスリープ状態になると、 'setTimeout'は決して実行されません。 –

+0

はい、そうです、@DamienMATHIEUこれを避け、24時間365日稼働させておくには、これをチェックしてください:http://stackoverflow.com/questions/40646858/avoid-heroku-server-from-sleeping Damo –

+0

実際には、ボットを常に実行していない限りリマインダ機能は動作しませんでしたか? –

0

あなたはこれを試すことができます。http://neversleep.ml

それはあなたのサーバーを監視し、それがクラッシュした場合、通知メールが送信されます。

関連する問題