svelte-on-rails 23.0.0 → 23.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/svelte_on_rails/ssr_client.rb +65 -60
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a0a6eefe251619adda23501f5ebb2569e81439d6de079778aa5117929abeaf06
|
|
4
|
+
data.tar.gz: d291f4f802e83affa9f0a97b787b16106d335a3a714bacaa706c3efa1f9e3315
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f52cd2b649f0b579fb7c3e35323facc4c0536af8581857adcc8c1cb5905f14985f8b57fe1064068e6538202acc433168a1a451fe75c2a2b55bf73730f4f4ab2f
|
|
7
|
+
data.tar.gz: 524d36abde6b6bfc40908fa9b094faf0b350da6d89fc08ae679d31d7af108ccc203701aba9e2a96c1b711256a9457ff2350b9712fb652039f2c1466af0964ef6
|
|
@@ -23,9 +23,11 @@ module SvelteOnRails
|
|
|
23
23
|
|
|
24
24
|
@initialized_by = caller
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
if ssr_startup_leader?
|
|
27
|
+
File.open(SvelteOnRails::Lib::Utils.ssr_server_logfile, 'w') do |f|
|
|
28
|
+
f.sync = true
|
|
29
|
+
f.puts("[#{Time.now.utc.iso8601(3)} ppid:#{Process.ppid} pid:#{Process.pid}] >>> Logfile deleted on initializing SsrClient, called by #{caller} <<<")
|
|
30
|
+
end
|
|
29
31
|
end
|
|
30
32
|
|
|
31
33
|
@socket_namespace = [
|
|
@@ -47,7 +49,7 @@ module SvelteOnRails
|
|
|
47
49
|
|
|
48
50
|
if @ssr_server
|
|
49
51
|
|
|
50
|
-
start_node_server!
|
|
52
|
+
start_node_server! if ssr_startup_leader?
|
|
51
53
|
|
|
52
54
|
at_exit do
|
|
53
55
|
shutdown(caller: 'at_exit')
|
|
@@ -183,58 +185,49 @@ module SvelteOnRails
|
|
|
183
185
|
restart_after_failure: false
|
|
184
186
|
)
|
|
185
187
|
|
|
186
|
-
|
|
187
|
-
if ssr_socket_exists?
|
|
188
|
-
SvelteOnRails::Lib::Utils.ssr_server_log("SOR start_node_server! => Exit because socket-file already exists", ssr_logfile_only: !restart_after_failure)
|
|
189
|
-
return
|
|
190
|
-
end
|
|
191
|
-
with_ssr_client_flock do
|
|
192
|
-
if ssr_socket_exists?
|
|
193
|
-
SvelteOnRails::Lib::Utils.ssr_server_log("SOR start_node_server! => Exit because concurrency process detected by flock-file", ssr_logfile_only: !restart_after_failure)
|
|
194
|
-
return
|
|
195
|
-
end
|
|
188
|
+
return if ping?
|
|
196
189
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
start = Time.now
|
|
200
|
-
|
|
201
|
-
@node_server_output = {}
|
|
202
|
-
Thread.new do
|
|
203
|
-
stdout, stderr, status = Open3.capture3(
|
|
204
|
-
start_node_server_command(started_by),
|
|
205
|
-
chdir: Rails.root
|
|
206
|
-
)
|
|
207
|
-
@node_server_output = {
|
|
208
|
-
stdout: stdout,
|
|
209
|
-
stderr: stderr,
|
|
210
|
-
status: status
|
|
211
|
-
}
|
|
212
|
-
end
|
|
213
|
-
SvelteOnRails::Lib::Utils.ssr_server_log("Node Version: #{Configuration.instance.node_version_test}, package version: #{Configuration.instance.npm_package_version_test}")
|
|
214
|
-
SvelteOnRails::Lib::Utils.ssr_server_log("Start running Svelte-SSR-Server... (#{started_by})")
|
|
190
|
+
SvelteOnRails::Lib::Utils.ssr_server_log("SOR start_node_server! called", ssr_logfile_only: !restart_after_failure)
|
|
215
191
|
|
|
216
|
-
|
|
217
|
-
sleep 0.12
|
|
218
|
-
SvelteOnRails::Lib::Utils.ssr_server_log("Waiting for node server process-id")
|
|
219
|
-
start_server_timeout!(start)
|
|
220
|
-
end
|
|
192
|
+
start = Time.now
|
|
221
193
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
194
|
+
@node_server_output = {}
|
|
195
|
+
Thread.new do
|
|
196
|
+
stdout, stderr, status = Open3.capture3(
|
|
197
|
+
start_node_server_command(started_by),
|
|
198
|
+
chdir: Rails.root
|
|
199
|
+
)
|
|
200
|
+
@node_server_output = {
|
|
201
|
+
stdout: stdout,
|
|
202
|
+
stderr: stderr,
|
|
203
|
+
status: status
|
|
204
|
+
}
|
|
205
|
+
end
|
|
206
|
+
SvelteOnRails::Lib::Utils.ssr_server_log("Node Version: #{Configuration.instance.node_version_test}, package version: #{Configuration.instance.npm_package_version_test}")
|
|
207
|
+
SvelteOnRails::Lib::Utils.ssr_server_log("Start running Svelte-SSR-Server... (#{started_by})")
|
|
228
208
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
209
|
+
until node_server_pid do
|
|
210
|
+
sleep 0.12
|
|
211
|
+
SvelteOnRails::Lib::Utils.ssr_server_log("Waiting for node server process-id")
|
|
212
|
+
start_server_timeout!(start)
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
until File.socket?(socket_path) do
|
|
216
|
+
sleep 0.1
|
|
217
|
+
SvelteOnRails::Lib::Utils.ssr_server_log("Waiting for socket to be created")
|
|
218
|
+
start_server_timeout!(start)
|
|
219
|
+
end
|
|
220
|
+
SvelteOnRails::Lib::Utils.ssr_server_log("Socket created: #{socket_path}")
|
|
235
221
|
|
|
236
|
-
|
|
222
|
+
until ping? do
|
|
223
|
+
SvelteOnRails::Lib::Utils.ssr_server_log("Waiting for successful server-response")
|
|
224
|
+
start_server_timeout!(start)
|
|
225
|
+
sleep 0.1
|
|
237
226
|
end
|
|
227
|
+
SvelteOnRails::Lib::Utils.ssr_server_log("Server responded successfully")
|
|
228
|
+
|
|
229
|
+
cleanup_leftover_processes
|
|
230
|
+
|
|
238
231
|
cleanup_flock_file_later
|
|
239
232
|
end
|
|
240
233
|
|
|
@@ -326,21 +319,33 @@ module SvelteOnRails
|
|
|
326
319
|
|
|
327
320
|
private
|
|
328
321
|
|
|
329
|
-
def
|
|
330
|
-
|
|
331
|
-
|
|
322
|
+
def ssr_startup_leader?
|
|
323
|
+
return @ssr_startup_leader unless @ssr_startup_leader.nil?
|
|
324
|
+
|
|
325
|
+
@ssr_startup_flock_file = File.open(flock_file, File::RDWR | File::CREAT, 0o644)
|
|
326
|
+
|
|
327
|
+
if @ssr_startup_flock_file.flock(File::LOCK_EX | File::LOCK_NB)
|
|
328
|
+
SvelteOnRails::Lib::Utils.ssr_server_log(
|
|
329
|
+
"SSR startup leader elected: pid=#{Process.pid}, ppid=#{Process.ppid}",
|
|
330
|
+
ssr_logfile_only: true
|
|
331
|
+
)
|
|
332
|
+
@ssr_startup_leader = true
|
|
333
|
+
else
|
|
334
|
+
@ssr_startup_flock_file.close
|
|
335
|
+
@ssr_startup_flock_file = nil
|
|
332
336
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
file.flock(File::LOCK_UN) if file
|
|
337
|
+
SvelteOnRails::Lib::Utils.ssr_server_log(
|
|
338
|
+
"SSR startup leader already exists; skipping Node startup in pid=#{Process.pid}, ppid=#{Process.ppid}",
|
|
339
|
+
ssr_logfile_only: true
|
|
340
|
+
)
|
|
341
|
+
@ssr_startup_leader = false
|
|
339
342
|
end
|
|
343
|
+
|
|
344
|
+
@ssr_startup_leader
|
|
340
345
|
end
|
|
341
346
|
|
|
342
347
|
def flock_file
|
|
343
|
-
|
|
348
|
+
Rails.root.join('tmp', 'sockets', "svelte-ssr-#{Process.ppid}.flock")
|
|
344
349
|
end
|
|
345
350
|
|
|
346
351
|
def cleanup_flock_file_later
|