前提・実現したいこと
プログラミング初心者です。
Railsで、二分毎に指定の内容をツイートするTwitterのボットを作っています。
ツイッターとRailsのappとの連携には成功していますが、gemのwheneverによるツイートの自動化で立ち止まっています。ここ3日間このエラーを解決する方法について考えていますが、まったく原因が分からないため、今回質問させていただきました。
発生している問題・エラーメッセージ
コマンドプロンプトにて、以下のエラーが発生します。
$ whenever --update-crontab $ 指定されたパスが見つかりません
該当のソースコード
app/models/post.rb ↓
class Post < ApplicationRecord def self.bot require 'twitter' require 'Date' @client = Twitter::REST::Client.new do |config| config.consumer_key = "######" config.consumer_secret = "######" config.access_token = "######" config.access_token_secret = "######" end t = Time.now @client.update("#{t.month}月#{t.day}日#{t.hour}時#{t.min}分") end end
app/config/schedule.rb ↓
require File.expand_path(File.dirname(__FILE__) + "/environment") env :PATH, ENV['PATH'] set :environment, :production set :output, "#{Rails.root}/log/cron.log" every 2.minutes do runner "Post.bot" end
試したこと
post.rbの内容やschdule.rbのログが排出される場所のパスを書き換えたりしましたが、同じ結果になりました。
<追記>
コマンドプロンプトのアプリケーションディレクトリ直下で
$ rails runner -e development "Post.bot"
を叩いた結果、正常にTwitterの方でツイートされているのが確認されました。
また、何故か
$ crontab -l と打っても、
$ 'crontab'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。
と出力されて実行できません。
バージョン
Ruby 2.4.5
Rails 5.2.2
Whenever 0.10.0
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。