これの多くは、スクリプトのパフォーマンス特性に依存します。CPUを非常に集中的に使用するが、影響が少ない場合は、心配する必要はありません。herokuスケジューラのようなものを使用する場合、ジョブは別のdynoで実行されます。これは別のdynoであるため、リクエストを処理している他のdynoには影響しません。
データベースの大量使用は、まったく別のことです。データベースには有限量のIO、キャッシュ、CPUなどがあり、それをハードにプッシュしている場合(多くの書き込みは、多くの読み取りよりも一般的に悪いです。これらのバストキャッシュのため)、他のdynoのパフォーマンスが低下する可能性があります。
Webサイトの動作を完全に停止することも可能です。アプリの残りの部分がアクセスしようとしている行/テーブルのロックをジョブが取得することになった場合、ジョブがそれらのロックを解放するまでWebdynoはブロックされます。
フィードをトラバースするときに更新するdb行を1つずつフィードを解析している場合は、おそらく問題ありません。ロックの競合に関しては、大量の書き込み/読み取りよりも小さな書き込み/読み取りの方が優れていると思います。インデックス付きの列から一度に1行ずつロードし、いくつかのルビー計算を実行してから1行を更新するように思われるため、データベースに大きな打撃を与えることになります。
パフォーマンスが許容できないほど低下していることに気づき、ボトルネックが読み取りである場合、1つの方法は、読み取りスレーブ(レプリカ、またはherokuではフォロワーを話す)を用意することです。一言で言えば、これはメインのデータベースサーバーを追跡する独立した読み取り専用のデータベースサーバーです(したがって、常にほぼ最新です)。このサーバーに対して行うことはマスターデータベースに影響を与えないため、心配することなくクエリを実行できます。
問題が必要な書き込みの数である場合、これは役に立ちません。より強力なデータベースサーバーに切り替えることで、ある程度これを(コストをかけて)解決できます。一部の使用パターンでは、リレーショナルデータベースよりもさまざまなタイプのデータストア(mongo、redisなど)の方が適切な場合があります。パフォーマンスのホットスポットのいくつかを設計することが可能な場合もありますが、それを検討するのに最適なのは明らかにあなたです。
これはすべて非常に抽象的なものです。実際にわかる唯一の方法は、試してみることです。アプリのコピーをセットアップし、このタスクを開始して、パフォーマンスがどのように低下するかを確認します(または、1回限りの影響を心配しない場合は、実際のアプリに対してこれを実行します)