質問編集履歴

3

画像追加

2018/03/15 02:28

投稿

sakurasaku
sakurasaku

スコア15

test CHANGED
File without changes
test CHANGED
@@ -123,3 +123,9 @@
123
123
  エラーメッセージが生じているのはviewの部分です。
124
124
 
125
125
  ![イメージ説明](0d7eda2bd0bfa47f19a5724be97df6bf.png)
126
+
127
+
128
+
129
+ なお、Sidekiqで待機状態が積み重なっているので、Sidekiqそのものは動いているものと考えております。
130
+
131
+ ![イメージ説明](2fe7653eca749e95432d5198d72467db.png)

2

背景やエラーメッセージを追記しました

2018/03/15 02:28

投稿

sakurasaku
sakurasaku

スコア15

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  ```
24
24
 
25
- @posts = ArticleWorker.perform_async(params[:name])
25
+ @posts = ArticleWorker.perform_async(params)
26
26
 
27
27
 
28
28
 
@@ -40,7 +40,7 @@
40
40
 
41
41
 
42
42
 
43
- def perform(params[:name])
43
+ def perform(params)
44
44
 
45
45
  user = User.find_by(name: params[:name])
46
46
 
@@ -70,10 +70,56 @@
70
70
 
71
71
  <% @posts.each do |post| %>
72
72
 
73
- <h4><%= post.title %></h4>
73
+   <h4><%= post.title %></h4>
74
+
75
+   <%= render 'form', {user: @user, num: post.sort} %>
76
+
77
+ <% end %>
74
78
 
75
79
  ```
76
80
 
77
81
 
78
82
 
79
- そらく根本的に誤解をしている思うのですが、解決の方向性にも検討がつきません。お、非同期にしたい理由は、この処理が非常に時間が掛かってしっているからです。どうぞよろしくお願いいたします。
83
+ お、form内は下記となます。
84
+
85
+
86
+
87
+ **■_form.html.erb**
88
+
89
+ ```
90
+
91
+ <% user.posts.each_with_index do |post,i| %>
92
+
93
+ <% if post.sort == num %>
94
+
95
+
96
+
97
+ <% page = MetaInspector.new(post.url1) %>
98
+
99
+     以下略
100
+
101
+ ```
102
+
103
+
104
+
105
+
106
+
107
+ おそらく、根本的に誤解をしていると思うのですが、解決の方向性にも検討がつきません。なお、非同期にしたい理由は、スクレイピング処理が非常に時間が掛かってしまっているからです。つまり、sidekiqで非同期処理したいのは、MetaInspector(NokogiriやMechanizeに似たスクレイピング系gem)の処理です。ただ、この部分だけを非同期にするよりも、大元の上記<% @posts.each do |post| %>に関わる部分をまとめて非同期にした方が良いのかなと思い、現状のような方向性で書いております。どうぞよろしくお願いいたします。
108
+
109
+
110
+
111
+
112
+
113
+ ----------追記------------
114
+
115
+
116
+
117
+ エラーメッセージはNomethodErrorでして下記となります。
118
+
119
+ ![イメージ説明](0950a0e20196b072ff7ea3125c3974d9.png)
120
+
121
+
122
+
123
+ エラーメッセージが生じているのはviewの部分です。
124
+
125
+ ![イメージ説明](0d7eda2bd0bfa47f19a5724be97df6bf.png)

1

情報を追記しました

2018/03/15 02:21

投稿

sakurasaku
sakurasaku

スコア15

test CHANGED
@@ -1 +1 @@
1
- 非同期処理の「Sidekiq」でundefined methodとな
1
+ 非同期処理の「Sidekiq」でundefined methodとなってしまう
test CHANGED
@@ -1,4 +1,4 @@
1
- 現状、下記のコードで動いております。(scopeをまだしておらず、すみません)
1
+ 現状、下記のコードで動いております。
2
2
 
3
3
 
4
4
 
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- この後、redis、sidekiq、sinatraなどを導入、テスト版がうまく動いているのを確認して、上記の既存コードをdelayed_jobで動かそうと、"rails g sidekiq:worker Article"をした上で、下記を試しました。
17
+ この後、redis、sidekiq、sinatraを導入、テスト版がうまく動いているのを確認して、上記の既存コードを非同期にしようと、"rails g sidekiq:worker Article"をした上で、下記を試しました。
18
18
 
19
19
 
20
20
 
@@ -22,7 +22,7 @@
22
22
 
23
23
  ```
24
24
 
25
- @posts = ArticleWorker.perform_async(post)
25
+ @posts = ArticleWorker.perform_async(params[:name])
26
26
 
27
27
 
28
28
 
@@ -40,7 +40,7 @@
40
40
 
41
41
 
42
42
 
43
- def perform(post)
43
+ def perform(params[:name])
44
44
 
45
45
  user = User.find_by(name: params[:name])
46
46
 
@@ -76,4 +76,4 @@
76
76
 
77
77
 
78
78
 
79
- どうぞよろしくお願いいたします。
79
+ おそらく、根本的に誤解をしていると思うのですが、解決の方向性にも検討がつきません。なお、非同期にしたい理由は、この処理が非常に時間が掛かってしまっているからです。どうぞよろしくお願いいたします。