[dancer-users] Lock session files with Dancer2::Session::YAML?
Stefan Hornburg (Racke)
racke at linuxia.de
Sat May 3 07:29:16 BST 2014
On 05/02/2014 10:07 PM, Maxwell Carey wrote:
> Is it possible to lock session files created by Dancer2::Session::YAML in order to avoid race conditions when two processes try to write to the same session at the same time? For example, if I have the following routes:
>
> get '/foo' => sub {
> my $foo = session 'foo';
> session 'foo' => ++$foo;
> };
>
> get '/bar' => sub {
> my $bar = session 'bar';
> session 'bar' => ++$bar;
> };
>
> and both are called at the same time, one route "wins", resulting in either the value of 'foo' or 'bar' being updated, but not both.
>
> If it's not possible (or easy) to lock the file, I would be open to an alternative storage backend, although I was hoping to keep things as simple as possible, i.e.
> I don't want to have to spin up a new MySQL database or equivalent. The existing Dancer2::Session:: backends all seem somewhat...involved. Any ideas?
>
It makes a lot of sense to lock sessions, in any session backend (not only file based). Locking file based sessions
isn't a big deal.
Regards
Racke
--
LinuXia Systems => http://www.linuxia.de/
Expert Interchange Consulting and System Administration
ICDEVGROUP => http://www.icdevgroup.org/
Interchange Development Team
More information about the dancer-users
mailing list