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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3940962e167ef99d7a0d4c96d0d55efb4beed16497825830840c668bfa06b46d
4
- data.tar.gz: 26a6cc1b3e604da9877eea62a2f8a9fd48dcba6dffcde1b988f6d65fe6b8261c
3
+ metadata.gz: a0a6eefe251619adda23501f5ebb2569e81439d6de079778aa5117929abeaf06
4
+ data.tar.gz: d291f4f802e83affa9f0a97b787b16106d335a3a714bacaa706c3efa1f9e3315
5
5
  SHA512:
6
- metadata.gz: fe829b60ff8c1fb774a7c426b10f2b4736016a4e0b022daf47d76751a6f0ec27e4f46cac9960315c0c57bf3f1e35236b210184bd4bd1dea9193d314b10b04c73
7
- data.tar.gz: 97e54fe0b02be5a342861e47f52d5eacb9442060af0e98b3ae152c52d3f66f708e7b7874aae4467bd7672c4f19f1ed39841bfb6c847375241bd5e1e03a4fa56f
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
- File.open(SvelteOnRails::Lib::Utils.ssr_server_logfile, 'w') do |f|
27
- f.sync = true
28
- f.puts("[#{Time.now.utc.iso8601(3)} ppid:#{Process.ppid} pid:#{Process.pid}] >>> Logfile deleted on initializing SsrClient, called by #{caller} <<<")
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
- # when multiple workers defined: ensure only the first start the node instance
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
- SvelteOnRails::Lib::Utils.ssr_server_log("SOR start_node_server! called", ssr_logfile_only: !restart_after_failure)
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
- until node_server_pid do
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
- until File.socket?(socket_path) do
223
- sleep 0.1
224
- SvelteOnRails::Lib::Utils.ssr_server_log("Waiting for socket to be created")
225
- start_server_timeout!(start)
226
- end
227
- SvelteOnRails::Lib::Utils.ssr_server_log("Socket created: #{socket_path}")
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
- until ping? do
230
- SvelteOnRails::Lib::Utils.ssr_server_log("Waiting for successful server-response")
231
- start_server_timeout!(start)
232
- sleep 0.1
233
- end
234
- SvelteOnRails::Lib::Utils.ssr_server_log("Server responded successfully")
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
- cleanup_leftover_processes
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 ssr_socket_exists?
330
- File.socket?(socket_path)
331
- end
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
- def with_ssr_client_flock
334
- File.open(flock_file, File::RDWR | File::CREAT, 0o644) do |file|
335
- file.flock(File::LOCK_EX)
336
- yield
337
- ensure
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
- File.join(File.dirname(socket_path), "ssr-client-flock")
348
+ Rails.root.join('tmp', 'sockets', "svelte-ssr-#{Process.ppid}.flock")
344
349
  end
345
350
 
346
351
  def cleanup_flock_file_later
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svelte-on-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 23.0.0
4
+ version: 23.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Sedlmair