質問編集履歴
6
コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -82,6 +82,8 @@
|
|
82
82
|
|
83
83
|
puts error
|
84
84
|
|
85
|
+
puts config.access_token_secret ←追加
|
86
|
+
|
85
87
|
end
|
86
88
|
|
87
89
|
|
@@ -106,6 +108,44 @@
|
|
106
108
|
|
107
109
|
|
108
110
|
|
111
|
+
ログ(run_regularly.rakeに「puts config.access_token_secret」を追加した際)
|
112
|
+
|
113
|
+
```
|
114
|
+
|
115
|
+
Invalid or expired token.
|
116
|
+
|
117
|
+
rake aborted!
|
118
|
+
|
119
|
+
NameError: undefined local variable or method `config' for main:Object
|
120
|
+
|
121
|
+
/Users/yuta/projects/AutoTwitterDM/lib/tasks/run_regularly.rake:20:in `rescue in block (2 levels) in <main>'
|
122
|
+
|
123
|
+
/Users/yuta/projects/AutoTwitterDM/lib/tasks/run_regularly.rake:16:in `block (2 levels) in <main>'
|
124
|
+
|
125
|
+
/Users/yuta/.rbenv/versions/2.6.5/bin/bundle:23:in `load'
|
126
|
+
|
127
|
+
/Users/yuta/.rbenv/versions/2.6.5/bin/bundle:23:in `<main>'
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
Caused by:
|
132
|
+
|
133
|
+
Twitter::Error::Unauthorized: Invalid or expired token.
|
134
|
+
|
135
|
+
/Users/yuta/projects/AutoTwitterDM/lib/tasks/run_regularly.rake:17:in `block (2 levels) in <main>'
|
136
|
+
|
137
|
+
/Users/yuta/.rbenv/versions/2.6.5/bin/bundle:23:in `load'
|
138
|
+
|
139
|
+
/Users/yuta/.rbenv/versions/2.6.5/bin/bundle:23:in `<main>'
|
140
|
+
|
141
|
+
Tasks: TOP => minite_post:regularly_flag
|
142
|
+
|
143
|
+
(See full trace by running task with --trace)
|
144
|
+
|
145
|
+
```
|
146
|
+
|
147
|
+
|
148
|
+
|
109
149
|
schedule.rb
|
110
150
|
|
111
151
|
```
|
@@ -176,7 +216,15 @@
|
|
176
216
|
|
177
217
|
```
|
178
218
|
|
219
|
+
|
220
|
+
|
221
|
+
|
222
|
+
|
179
|
-
|
223
|
+
```
|
224
|
+
|
225
|
+
puts config.access_token_secret
|
226
|
+
|
227
|
+
```
|
180
228
|
|
181
229
|
|
182
230
|
|
5
情報の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -78,11 +78,9 @@
|
|
78
78
|
|
79
79
|
@client.create_direct_message(@client.user(@user.name).id, "#{@client.user(@user.name).name}#{@user.atena}\n\n#{@user.text}")
|
80
80
|
|
81
|
-
rescue
|
81
|
+
rescue => error
|
82
82
|
|
83
|
-
puts
|
83
|
+
puts error
|
84
|
-
|
85
|
-
puts $@
|
86
84
|
|
87
85
|
end
|
88
86
|
|
@@ -152,77 +150,29 @@
|
|
152
150
|
|
153
151
|
|
154
152
|
|
155
|
-
ログ(単発実行時)
|
153
|
+
rescueのログ(単発実行時)
|
154
|
+
|
155
|
+
ただし、DM送信はできている。
|
156
156
|
|
157
157
|
```
|
158
158
|
|
159
|
-
|
159
|
+
undefined method `name' for nil:NilClass
|
160
160
|
|
161
|
-
|
162
|
-
|
163
|
-
[1m[35m (0.2ms)[0m [1m[34mSELECT COUNT(*) FROM `send_infos`[0m
|
164
|
-
|
165
|
-
↳ lib/tasks/run_regularly.rake:14:in `block (2 levels) in <main>'
|
166
|
-
|
167
|
-
[1m[36mSendInfo Load (0.2ms)[0m [1m[34mSELECT `send_infos`.* FROM `send_infos` ORDER BY `send_infos`.`id` ASC LIMIT 1[0m
|
168
|
-
|
169
|
-
↳ lib/tasks/run_regularly.rake:15:in `block (2 levels) in <main>'
|
170
|
-
|
171
|
-
[1m[35m (0.3ms)[0m [1m[35mBEGIN[0m
|
172
|
-
|
173
|
-
↳ lib/tasks/run_regularly.rake:21:in `block (2 levels) in <main>'
|
174
|
-
|
175
|
-
[1m[36mSendInfo Destroy (0.5ms)[0m [1m[31mDELETE FROM `send_infos` WHERE `send_infos`.`id` = 246[0m
|
176
|
-
|
177
|
-
↳ lib/tasks/run_regularly.rake:21:in `block (2 levels) in <main>'
|
178
|
-
|
179
|
-
[1m[35m (1.3ms)[0m [1m[35mCOMMIT[0m
|
180
|
-
|
181
|
-
↳ lib/tasks/run_regularly.rake:21:in `block (2 levels) in <main>'
|
182
|
-
|
183
|
-
[1m[35m (0.4ms)[0m [1m[35mSET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483[0m
|
184
|
-
|
185
|
-
↳ lib/tasks/run_regularly.rake:14:in `block (2 levels) in <main>'
|
186
|
-
|
187
|
-
[1m[35m (0.3ms)[0m [1m[34mSELECT COUNT(*) FROM `send_infos`[0m
|
188
|
-
|
189
|
-
↳ lib/tasks/run_regularly.rake:14:in `block (2 levels) in <main>'
|
190
|
-
|
191
|
-
[1m[36mSendInfo Load (0.2ms)[0m [1m[34mSELECT `send_infos`.* FROM `send_infos` ORDER BY `send_infos`.`id` ASC LIMIT 1[0m
|
192
|
-
|
193
|
-
↳ lib/tasks/run_regularly.rake:15:in `block (2 levels) in <main>'
|
161
|
+
"OK"
|
194
162
|
|
195
163
|
```
|
196
164
|
|
197
165
|
|
198
166
|
|
199
|
-
ログ(定期実行時)
|
167
|
+
rescueのログ(定期実行時)
|
168
|
+
|
169
|
+
DM送信はできない。
|
200
170
|
|
201
171
|
```
|
202
172
|
|
203
|
-
|
173
|
+
Invalid or expired token.
|
204
174
|
|
205
|
-
↳ lib/tasks/run_regularly.rake:14:in `block (2 levels) in <main>'
|
206
|
-
|
207
|
-
[1m[35m (0.2ms)[0m [1m[34mSELECT COUNT(*) FROM `send_infos`[0m
|
208
|
-
|
209
|
-
↳ lib/tasks/run_regularly.rake:14:in `block (2 levels) in <main>'
|
210
|
-
|
211
|
-
[1m[36mSendInfo Load (0.2ms)[0m [1m[34mSELECT `send_infos`.* FROM `send_infos` ORDER BY `send_infos`.`id` ASC LIMIT 1[0m
|
212
|
-
|
213
|
-
↳ lib/tasks/run_regularly.rake:15:in `block (2 levels) in <main>'
|
214
|
-
|
215
|
-
[1m[35m (0.3ms)[0m [1m[35mBEGIN[0m
|
216
|
-
|
217
|
-
↳ lib/tasks/run_regularly.rake:21:in `block (2 levels) in <main>'
|
218
|
-
|
219
|
-
[1m[36mSendInfo Destroy (0.4ms)[0m [1m[31mDELETE FROM `send_infos` WHERE `send_infos`.`id` = 241[0m
|
220
|
-
|
221
|
-
↳ lib/tasks/run_regularly.rake:21:in `block (2 levels) in <main>'
|
222
|
-
|
223
|
-
|
175
|
+
"OK"
|
224
|
-
|
225
|
-
↳ lib/tasks/run_regularly.rake:21:in `block (2 levels) in <main>'
|
226
176
|
|
227
177
|
```
|
228
178
|
|
4
コードの編集
test
CHANGED
File without changes
|
test
CHANGED
@@ -80,8 +80,14 @@
|
|
80
80
|
|
81
81
|
rescue
|
82
82
|
|
83
|
+
puts $!
|
84
|
+
|
85
|
+
puts $@
|
86
|
+
|
83
87
|
end
|
84
88
|
|
89
|
+
|
90
|
+
|
85
91
|
if @user_num >= 1
|
86
92
|
|
87
93
|
@user.destroy
|
3
コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -136,6 +136,16 @@
|
|
136
136
|
|
137
137
|
|
138
138
|
|
139
|
+
cronへの登録情報
|
140
|
+
|
141
|
+
```
|
142
|
+
|
143
|
+
* * * * * /bin/bash -l -c 'cd /Users/manami/projects/AutoTwitterDM && RAILS_ENV=development bundle exec rake minite_post:regularly_flag --silent >> /Users/manami/projects/AutoTwitterDM/log/cron.log 2>&1'
|
144
|
+
|
145
|
+
```
|
146
|
+
|
147
|
+
|
148
|
+
|
139
149
|
ログ(単発実行時)
|
140
150
|
|
141
151
|
```
|
2
コードの編集
test
CHANGED
File without changes
|
test
CHANGED
@@ -106,57 +106,29 @@
|
|
106
106
|
|
107
107
|
```
|
108
108
|
|
109
|
+
# Rails.rootを使用するために必要。なぜなら、wheneverは読み込まれるときにrailsを起動する必要がある
|
110
|
+
|
111
|
+
require File.expand_path(File.dirname(__FILE__) + "/environment")
|
112
|
+
|
113
|
+
# cronを実行する環境変数
|
114
|
+
|
115
|
+
rails_env = ENV['RAILS_ENV'] || :development
|
116
|
+
|
117
|
+
# cronを実行する環境変数をセット
|
118
|
+
|
119
|
+
set :environment, rails_env
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
# cronのログの吐き出し場所。ここでエラー内容を確認する
|
124
|
+
|
125
|
+
set :output, "#{Rails.root}/log/cron.log"
|
126
|
+
|
127
|
+
|
128
|
+
|
109
|
-
|
129
|
+
every 1.minutes do
|
110
|
-
|
111
|
-
|
130
|
+
|
112
|
-
|
113
|
-
task :regularly_flag => :environment do
|
114
|
-
|
115
|
-
#ログ
|
116
|
-
|
117
|
-
|
131
|
+
rake "minite_post:regularly_flag"
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
#ここから処理を書いていく
|
122
|
-
|
123
|
-
@client = Twitter::REST::Client.new do |config|
|
124
|
-
|
125
|
-
config.consumer_key = ENV["TWITTER_CONSUMER_KEY"]
|
126
|
-
|
127
|
-
config.consumer_secret = ENV["CONSUMER_SECRET"]
|
128
|
-
|
129
|
-
config.access_token = ENV["ACCESS_TOKEN"]
|
130
|
-
|
131
|
-
config.access_token_secret = ENV["ACCESS_TOKEN_SECRET"]
|
132
|
-
|
133
|
-
end
|
134
|
-
|
135
|
-
@user_num = SendInfo.count
|
136
|
-
|
137
|
-
@user = SendInfo.first
|
138
|
-
|
139
|
-
begin
|
140
|
-
|
141
|
-
@client.create_direct_message(@client.user(@user.name).id, "#{@client.user(@user.name).name}#{@user.atena}\n\n#{@user.text}")
|
142
|
-
|
143
|
-
rescue
|
144
|
-
|
145
|
-
end
|
146
|
-
|
147
|
-
if @user_num >= 1
|
148
|
-
|
149
|
-
@user.destroy
|
150
|
-
|
151
|
-
end
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
#デバッグのため
|
156
|
-
|
157
|
-
p "OK"
|
158
|
-
|
159
|
-
end
|
160
132
|
|
161
133
|
end
|
162
134
|
|
1
情報の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -164,6 +164,80 @@
|
|
164
164
|
|
165
165
|
|
166
166
|
|
167
|
+
ログ(単発実行時)
|
168
|
+
|
169
|
+
```
|
170
|
+
|
171
|
+
[1m[35m (0.6ms)[0m [1m[35mSET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483[0m
|
172
|
+
|
173
|
+
↳ lib/tasks/run_regularly.rake:14:in `block (2 levels) in <main>'
|
174
|
+
|
175
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT COUNT(*) FROM `send_infos`[0m
|
176
|
+
|
177
|
+
↳ lib/tasks/run_regularly.rake:14:in `block (2 levels) in <main>'
|
178
|
+
|
179
|
+
[1m[36mSendInfo Load (0.2ms)[0m [1m[34mSELECT `send_infos`.* FROM `send_infos` ORDER BY `send_infos`.`id` ASC LIMIT 1[0m
|
180
|
+
|
181
|
+
↳ lib/tasks/run_regularly.rake:15:in `block (2 levels) in <main>'
|
182
|
+
|
183
|
+
[1m[35m (0.3ms)[0m [1m[35mBEGIN[0m
|
184
|
+
|
185
|
+
↳ lib/tasks/run_regularly.rake:21:in `block (2 levels) in <main>'
|
186
|
+
|
187
|
+
[1m[36mSendInfo Destroy (0.5ms)[0m [1m[31mDELETE FROM `send_infos` WHERE `send_infos`.`id` = 246[0m
|
188
|
+
|
189
|
+
↳ lib/tasks/run_regularly.rake:21:in `block (2 levels) in <main>'
|
190
|
+
|
191
|
+
[1m[35m (1.3ms)[0m [1m[35mCOMMIT[0m
|
192
|
+
|
193
|
+
↳ lib/tasks/run_regularly.rake:21:in `block (2 levels) in <main>'
|
194
|
+
|
195
|
+
[1m[35m (0.4ms)[0m [1m[35mSET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483[0m
|
196
|
+
|
197
|
+
↳ lib/tasks/run_regularly.rake:14:in `block (2 levels) in <main>'
|
198
|
+
|
199
|
+
[1m[35m (0.3ms)[0m [1m[34mSELECT COUNT(*) FROM `send_infos`[0m
|
200
|
+
|
201
|
+
↳ lib/tasks/run_regularly.rake:14:in `block (2 levels) in <main>'
|
202
|
+
|
203
|
+
[1m[36mSendInfo Load (0.2ms)[0m [1m[34mSELECT `send_infos`.* FROM `send_infos` ORDER BY `send_infos`.`id` ASC LIMIT 1[0m
|
204
|
+
|
205
|
+
↳ lib/tasks/run_regularly.rake:15:in `block (2 levels) in <main>'
|
206
|
+
|
207
|
+
```
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
ログ(定期実行時)
|
212
|
+
|
213
|
+
```
|
214
|
+
|
215
|
+
[1m[35m (0.6ms)[0m [1m[35mSET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483[0m
|
216
|
+
|
217
|
+
↳ lib/tasks/run_regularly.rake:14:in `block (2 levels) in <main>'
|
218
|
+
|
219
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT COUNT(*) FROM `send_infos`[0m
|
220
|
+
|
221
|
+
↳ lib/tasks/run_regularly.rake:14:in `block (2 levels) in <main>'
|
222
|
+
|
223
|
+
[1m[36mSendInfo Load (0.2ms)[0m [1m[34mSELECT `send_infos`.* FROM `send_infos` ORDER BY `send_infos`.`id` ASC LIMIT 1[0m
|
224
|
+
|
225
|
+
↳ lib/tasks/run_regularly.rake:15:in `block (2 levels) in <main>'
|
226
|
+
|
227
|
+
[1m[35m (0.3ms)[0m [1m[35mBEGIN[0m
|
228
|
+
|
229
|
+
↳ lib/tasks/run_regularly.rake:21:in `block (2 levels) in <main>'
|
230
|
+
|
231
|
+
[1m[36mSendInfo Destroy (0.4ms)[0m [1m[31mDELETE FROM `send_infos` WHERE `send_infos`.`id` = 241[0m
|
232
|
+
|
233
|
+
↳ lib/tasks/run_regularly.rake:21:in `block (2 levels) in <main>'
|
234
|
+
|
235
|
+
[1m[35m (0.5ms)[0m [1m[35mCOMMIT[0m
|
236
|
+
|
237
|
+
↳ lib/tasks/run_regularly.rake:21:in `block (2 levels) in <main>'
|
238
|
+
|
239
|
+
```
|
240
|
+
|
167
241
|
|
168
242
|
|
169
243
|
|
@@ -172,4 +246,10 @@
|
|
172
246
|
|
173
247
|
ruby 2.6.5p114
|
174
248
|
|
175
|
-
Rails 6.0.3.4
|
249
|
+
Rails 6.0.3.4
|
250
|
+
|
251
|
+
|
252
|
+
|
253
|
+
参考にさせていただいたサイト
|
254
|
+
|
255
|
+
[定期実行する rake taskとcronの使い方](https://qiita.com/w5966qzh/items/b77ba8aa3d603cdbb86b#comments)
|