Session mizí nezávisle na expiration

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
premek_k
Člen | 172
+
0
-

Ahoj,
jak je to se sessions? Jsou závislé nějak na nastavení serveru, nebo se mohu spolehnout na to, co nastavím v nette?

Jde o to, že i když jsem v configu nastavil cestu k sessions do /temp/sessions a expirace je 14 days, tak mi ty sessions „nějak nepravidelně“ (ještě jsem nevysledoval podrobnosti) mizí – jednu chvíli je v tom adresáři např. 50 souborů a za chvíli třeba 10, z toho některé původní a některé nové

Nedělám někde chybu?

session:
  expiration: 14 days
  savePath: '%tempDir%/sessions'
/** @var  SessionSection */
  private $checklistSession;


  public function startup()
  {
    parent::startup();
    $this->checklistSession = $this->getSession('checklistSession');
  }



  public function actionDetail($checklistCode)
  {
	:
	:

    // Aktualizace kodu v session
    $codes = $this->checklistSession->checklistCodes;
    if (!$codes) {
      $codes = [];
    }
    if (!in_array($checklistCode, $codes)) {
      $codes[] = $checklistCode;
      $this->checklistSession->checklistCodes = $codes;
    }

	:
	:
  }

Editoval premek_k (10. 3. 2016 13:24)

David Matějka
Moderator | 6445
+
0
-

Pred tydnem jsem k tomu vytvoril zapis na planette :) https://play.nette.org/…nych-session

premek_k
Člen | 172
+
0
-

Díky, Davide, ale moudrý z toho nejsem. Tak, jak jsi to popsal – tak jsem předpokládal, že to funguje. Proto jsem už od začátku zvolil vlastní session.savePath s vědomím, že mi na to nikdo nešáhne. Ale soubory mi mizí, i když to mám ve svém vlastním umístění…

Jinak na serveru to vypadá takto:

session.gc_maxlifetime:	1440
session.gc_probability:	1
session.gc_divisor:	100
session.save_path:	/tmp

Editoval premek_k (10. 3. 2016 12:48)

David Matějka
Moderator | 6445
+
0
-

jo sorry, spatne jsem si to precet. po vcerejsim pivu jeste nejsem moc ready :) v tom pripade je to chovani divne a nic moc me nenapada…

premek_k
Člen | 172
+
0
-

Připadá mi to, jakoby to bylo omezeno počtem – počet uložených session nějakou dobu roste a zřejmě až dosáhne nějakého limitu, tak se to promaže.

iguana007
Člen | 970
+
0
-

No já ti nevím, ale nemělo by být session.gc_maxlifetime: 1440 stejné nebo vyšší než to, co si nastavuješ v Nette? Alespoň u mne to tak bylo – tj. dokud jsem hodnotu nenávýšil v php.ini, tak se mi ty sessions taky na serveru mazaly.

Pavel Kravčík
Člen | 1196
+
0
-

Nette si ho přenastavuje myslím. Problém by mohl nastat jen v případě, pokud by nebylo povolené nastavování přes PHP skript, jak to dělají někteří provideři, aby ses jim nemontoval do serveru.

premek_k
Člen | 172
+
0
-

Čekám na změnu hodnoty gc_maxlifetime na serveru. Pak se uvidí…

premek_k
Člen | 172
+
0
-

Tak změna gc_maxlifetime na serveru má na toto vliv. Bohužel maximální doba, kterou lze na savaně nastavit je 65536 – což je nějakých 18 hodin. Budu to muset předělat na ukládání do local storage…

Editoval premek_k (11. 3. 2016 0:10)