Как сериализовать объект, используя TCPServer внутри?

Стремясь ускорить частые повторяющиеся запуски определенного сценария в моей цепочке, я начал сериализацию на пользовательские объекты диска, которые в противном случае для создания в совокупности занимают слишком много времени.

Использование встроенного Yaml и / или Marshal.

Yaml хорошо сериализуется в на первый взгляд здоровый текстовый файл, но при попытке десериализации выдает следующую ошибку:

b2 = YAML::load(File.open("browserObj.yaml", 'r'))
Syck::TypeError: Invalid Regular expression: "/\\A\\s*\n        ([a-zA-Z][-+.a-zA-Z\\d]*):          ...and many more strange lines 

Однако даже пытается сохранить в двоичном файле с помощью ошибок Marshal:

puts File.open("browserObj.bin", 'w').write Marshal::dump($browser)  
TypeError: can't dump TCPServer

# Marshal::dump($browser, File.open("browserObj.bin", 'wb'))  # same error

Намеренно не делает $browser.close в конце у меня есть возможность сохранить этот TCPServer живым и работающим после жизненного цикла моего сценария Ruby.

Есть мысли, как мне с этим сойти? Я обещаю после успешной перезагрузки перепроверить валидность любых сокетов / внутренних объектов и просто заново инициализировать целый новый объект, если потребуется.

0 ответов

Другие вопросы по тегам