質問編集履歴
3
画像追加
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
背景やエラーメッセージを追記しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
```
|
24
24
|
|
25
|
-
@posts = ArticleWorker.perform_async(params
|
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
|
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
情報を追記しました
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
非同期処理の「Sidekiq」でundefined methodとな
|
1
|
+
非同期処理の「Sidekiq」でundefined methodとなってしまう
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
現状、下記のコードで動いております。
|
1
|
+
現状、下記のコードで動いております。
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
この後、redis、sidekiq、sinatra
|
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(p
|
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(p
|
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
|
+
おそらく、根本的に誤解をしていると思うのですが、解決の方向性にも検討がつきません。なお、非同期にしたい理由は、この処理が非常に時間が掛かってしまっているからです。どうぞよろしくお願いいたします。
|