рдореИрдкрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рддреНрд░реЛрдВ рд╕реЗ рдбреЗрдЯрд╛рд╕реНрдЯреЛрд░ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдореЗрдВ рдХреНрдпрд╛ рдЦрд░реНрдЪ рд╣реЛрддрд╛ рд╣реИ

рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдиреЗ рдЕрдкрдиреЗ рдЬреАрдПрдИ рдЖрд╡реЗрджрди рдореЗрдВ рд╕рддреНрд░ рдХрд╛ рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ, рд╡реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рддреНрд░, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдбреЗрдЯрд╛рд╕реНрдЯреЛрд░ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд╣рд╛рдВ рд╕реЗ рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдмрд╛рд╕реА рд╕рддреНрд░ рд╕реЗ рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



рдореИрдВрдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдлреАрдХреЗ рд╕рддреНрд░реЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХреА, рдФрд░ рдбреЗрдврд╝ рд╕рд╛рд▓ рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдбреЗрдврд╝ рдорд┐рд▓рд┐рдпрди рдЯреБрдХрдбрд╝реЗ рдЬрдорд╛ рдХрд┐рдПред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдбреЗрдЯрд╛рд╕реНрдЯреЛрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХрд╛ рдЖрдХрд╛рд░ рдореБрдХреНрдд рдХреЛрдЯрд╛ рдХреЛ рдкрд╛рд░ рдХрд░ рдЧрдпрд╛ рдФрд░, рдЪреВрдВрдХрд┐ 99% рд╕рддреНрд░реЛрдВ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВрдиреЗ рдмреЗрдИрдорд╛рдиреА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред











рдмреЗрд╢рдХ, рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬрд╛рд░реА рдореИрдкрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдПрдХ рдкрд╛рдк рдерд╛ред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдореИрдкрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛, рд╕рд┐рд░реНрдл рдЧрд┐рдирддреА рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛:



public class SessionCleanupMapper extends AppEngineMapper<Key, Entity, NullWritable, NullWritable> { @Override public void map(Key key, Entity value, Context context) { Object expiresProperty = value.getProperty("_expires"); if (expiresProperty instanceof Long) { long expiresTimestamp = ((Long)expiresProperty).longValue(); if (expiresTimestamp < System.currentTimeMillis()) { context.getCounter("Session", "expired").increment(1); // DatastoreMutationPool mutationPool = this.getAppEngineContext(context).getMutationPool(); // mutationPool.delete(value.getKey()); } } } }
      
      







рдФрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рдЧрд┐рдпрд░ рдЦрд╝рд░рд╛рдм рд╣реЛ рдЧрдП, рдЬреАрдПрдИ рдЪрд╛рд░ рд╣рд╛рде рдореЗрд░реЗ рд╕рддреНрд░реЛрдВ рдХреЛ рдЫреЗрдбрд╝рдиреЗ рд▓рдЧреЗред рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рд╕реНрдерд▓ рдХреЛрдЯрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдерд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрдВрд╕реЛрд▓ рдХреЛ рджреЗрдЦрд╛ рдФрд░ рджреЗрдЦрд╛ рдХрд┐ рд╕реАрдкреАрдпреВ рдХреЛрдЯрд╛ (8.5 рд╕реАрдкреАрдпреВ рдШрдВрдЯреЗ) рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рд╣реИрд░рд╛рди рдерд╛ред рдХреЛрдЯрд╛ рдмрдврд╝рд╛рдпрд╛ рдФрд░ рдЕрдЧрд▓реЗ рджрд┐рди рдлрд┐рд░ рд╕реЗ рдорд╛рдирдЪрд┐рддреНрд░рдг рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЕрдм рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╣рдЯрд╛рдХрд░ рдЙрди рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдЙрд░ред рдХреЗрд╡рд▓ 2.5 рдШрдВрдЯреЗ рдХреЗ рдирд┐рд░рдкреЗрдХреНрд╖ рд╕рдордп рдореЗрдВ, рдХреНрд▓рд╛рдЙрдб рдореЗрдЧрд╛-рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдЕрдВрддрддрдГ 22 рд╕реАрдкреАрдпреВ рдШрдВрдЯреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд┐рдпрд╛ред









рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рдмрд╛рджрд▓реЛрдВ рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ MySQL рднреА рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ

 DELETE FROM _ah_SESSION WHERE _expires < NOW()
      
      





рдХреБрдЫ рд╣реА рдорд┐рдирдЯреЛрдВ рдореЗрдВред рдПрдХ рд▓рд╛рдЦ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдФрд░ рджреЛ рдорд┐рд▓рд┐рдпрди рдХреЗ рд╕рд╛рде рднреАред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдкреБрд░рд╛рдиреЗ рдЬрдорд╛рдиреЗ рдХрд╛ рд╣реИ, рд╕рднреА рдПрдХ рдорд╢реАрди рдкрд░, рдмрд┐рдирд╛ рдорд╛рдкреНрдпрддрд╛ рдФрд░ рдЕрддрд┐рд░реЗрдХ рдХреЗ, рдФрд░ рдпрд╣ рд╕рдм ...



рдЕрджреНрдпрддрди: рдбреЗрдЯрд╛рд╕реНрдЯреЛрд░ рд╕реЗ рд╕рддреНрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдкреНрд░реЗрдбрд┐рдХ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдЖрдк рдХрд░реНрд╕рд░ рдХреЗ рд╕рд╛рде рдореИрдЬрд┐рдХ рд╕рд░реНрд╡рд▓реЗрдЯ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рд╣рд░ рджрд┐рди рдЦрд░рд╛рдм рд╣реЛ рдЧрдП (рдХреБрдЫ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬреИрд╕реЗ (*) рд╕реЗ _ah_SESSION рдЧреНрд░реБрдк рдмрд╛рдп _ рдбреЗрдХреНрд╕рдЯрд╛рдпрд░ / (86400 * 1000)) рдХрд┐рд╕реА рдиреЗ рднреА рд╕рд░реНрд╡рд▓реЗрдЯ рдирд╣реАрдВ рд▓рд┐рдЦрд╛, рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрднреА рднреА рдореИрдкреНрд░реЗрдбрд┐рдХ рдбреНрд░рд╛рдЗрд╡ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗред рдПрдХ рдЖрджрд┐рдо DBMS рдХрд╛ рдПрдХ рд╣реА рдиреБрдХрд╕рд╛рдиред



All Articles