Чтобы ускорить частые повторные запуски определенного сценария в моей цепочке, я начал сериализацию на пользовательские объекты диска, которые в противном случае для создания совокупных данных занимают слишком много времени.
Использование встроенных Yaml и / илиМаршал.
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
Однако даже при попытке сохранить в двоичном файле ошибки Маршала:
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.
Любые мысли о том, как я могу уйтис этим?Я обещаю после успешной перезагрузки перепроверить валидность любых сокетов / внутренних объектов и просто заново инициализировать целый новый объект, если потребуется.