diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2019-06-10 18:09:54 +0200 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2019-06-10 18:09:54 +0200 | 
| commit | b54c977e0828e7e1d35f577e83122ed89779bd59 (patch) | |
| tree | 5195decaa6d5284368517efab7c845c6026ac5ec | |
| parent | 962aac63af84ff845120af0146d01879c1abbde8 (diff) | |
increase checkout delay to work around IRIS information lag1.7.4
| -rw-r--r-- | lib/Travelynx/Command/work.pm | 12 | ||||
| -rw-r--r-- | templates/_checked_in.html.ep | 6 | 
2 files changed, 12 insertions, 6 deletions
| diff --git a/lib/Travelynx/Command/work.pm b/lib/Travelynx/Command/work.pm index 3ca9409..3e7df72 100644 --- a/lib/Travelynx/Command/work.pm +++ b/lib/Travelynx/Command/work.pm @@ -13,7 +13,7 @@ has usage => sub { shift->extract_usage };  sub run {  	my ($self) = @_; -	my $now = DateTime->now( time_zone => 'Europe/Berlin' ); +	my $now  = DateTime->now( time_zone => 'Europe/Berlin' );  	my $json = JSON->new;  	my $db = $self->app->pg->db; @@ -29,8 +29,14 @@ sub run {  		$self->app->log->debug("Processing $uid"); +		# Note: IRIS data is not always updated in real-time. Both departure and +		# arrival delays may take several minutes to appear, especially in case +		# of large-scale disturbances. We work around this by continuing to +		# update departure data for up to 15 minutes after departure and +		# delaying automatic checkout by at least 10 minutes. +  		eval { -			if ( $now->epoch - $entry->{real_dep_ts} < 300 ) { +			if ( $now->epoch - $entry->{real_dep_ts} < 900 ) {  				$self->app->log->debug("  - updating departure");  				my $status = $self->app->get_departures( $dep, 30, 30 );  				if ( $status->{errstr} ) { @@ -71,7 +77,7 @@ sub run {  			if (  				$entry->{arr_name}  				and ( not $entry->{real_arr_ts} -					or $now->epoch - $entry->{real_arr_ts} < 60 ) +					or $now->epoch - $entry->{real_arr_ts} < 600 )  			  )  			{  				$self->app->log->debug("  - updating arrival"); diff --git a/templates/_checked_in.html.ep b/templates/_checked_in.html.ep index 184b11a..6bbf858 100644 --- a/templates/_checked_in.html.ep +++ b/templates/_checked_in.html.ep @@ -144,9 +144,9 @@  		% }  		% if (defined $journey->{arrival_countdown} and $journey->{arrival_countdown} <= 0) {  			<p style="margin-top: 2ex;"> -				Der automatische Checkout erfolgt in wenigen Minuten. Zum Umsteigen: -				Aktuelle Station erneut in der Liste auswählen. Zum Weiterfahren im -				aktuellen Zug: Neues Ziel wählen. +				Der automatische Checkout erfolgt erst zehn Minuten nach der +				Ankunft, um verzögerte IRIS-Updates zu berücksichtigen. Du kannst +				bereits jetzt in einen neuen Zug einchecken.  			</p>  		% }  		% elsif ($journey->{arr_name}) { | 
