ryan
09/09/2022, 5:13 PMcachedWithin
directive by wanting to use an application or session scoped variable that is utilized by specific functions. Any change in the variable will then make a sweeping change to all functions utilizing cachedWithin with this variable. I even attempted to set a variable inside like so cachedWithin = createTimeSpan(0,0,variableHere,0)
, but every attempt leads to an error needing a literal value. Is there any way to create a cache on functions with a variable? Is there a reason why we cannot use a variable on a cachedWithin
directive?websolete
09/09/2022, 5:41 PMwebsolete
09/09/2022, 5:42 PMryan
09/09/2022, 6:46 PMryan
09/09/2022, 6:47 PMwebsolete
09/09/2022, 6:48 PMwebsolete
09/09/2022, 6:50 PMryan
09/09/2022, 6:52 PMtimevar = createTimeSpan(0,0,1,0);
cachedWithin = timevar
timevar = val(createTimeSpan(0,0,1,0));
cachedWithin = timevar
timevar = 1;
cachedWithin = timevar
timevar = 1;
cachedWithin = createTimeSpan(0, 0, timevar, 0)
timevar = createTimeSpan(0,0,1,0);
cachedWithin = '#timevar#'
timevar = val(createTimeSpan(0,0,1,0));
cachedWithin = '#timevar#'
The following is the error:
value of cachedWithin must be a literal value (string,boolean,number), a timespan can be defined as follows: 0.1 or createTimespan(1,2,3,4)
websolete
09/09/2022, 6:58 PMryan
09/09/2022, 6:58 PMwebsolete
09/09/2022, 6:58 PMwebsolete
09/09/2022, 6:59 PMtimeVar = evaluate("createTimeSpan(0,0,someVar,0)")
out of sheer morbid curiosity?ryan
09/09/2022, 6:59 PMryan
09/09/2022, 6:59 PMwebsolete
09/09/2022, 6:59 PMryan
09/09/2022, 7:00 PMwebsolete
09/09/2022, 7:00 PMryan
09/09/2022, 7:01 PMwebsolete
09/09/2022, 7:02 PMryan
09/09/2022, 7:05 PMcreateTimeSpan
works fine. Let me see if I can make my scenario in there. One moment, pleaseryan
09/09/2022, 7:06 PMwebsolete
09/09/2022, 7:09 PMryan
09/09/2022, 7:10 PMryan
09/09/2022, 7:10 PMwebsolete
09/09/2022, 7:10 PMwebsolete
09/09/2022, 7:10 PMwebsolete
09/09/2022, 7:11 PMryan
09/09/2022, 7:12 PMwebsolete
09/09/2022, 7:12 PMwebsolete
09/09/2022, 7:13 PMryan
09/09/2022, 7:15 PMwebsolete
09/09/2022, 7:16 PMryan
09/09/2022, 7:21 PMryan
09/09/2022, 7:22 PMryan
09/09/2022, 7:22 PMwebsolete
09/09/2022, 7:27 PMwebsolete
09/09/2022, 7:28 PMwebsolete
09/09/2022, 7:36 PMwebsolete
09/09/2022, 7:37 PMwebsolete
09/09/2022, 7:37 PMwebsolete
09/09/2022, 7:38 PMwebsolete
09/09/2022, 7:39 PMryan
09/09/2022, 8:03 PMcacheWithin = 'request'
if I'm not mistakenedryan
09/09/2022, 8:04 PMryan
09/09/2022, 8:05 PMryan
09/09/2022, 8:05 PMryan
09/09/2022, 8:07 PMryan
09/09/2022, 8:09 PMwebsolete
09/09/2022, 8:09 PMmyFunc( cacheBuster = getticcount() )
when you need to force a refreshryan
09/09/2022, 8:09 PMryan
09/09/2022, 8:11 PMryan
09/09/2022, 8:12 PMwebsolete
09/09/2022, 8:12 PMwebsolete
09/09/2022, 8:19 PMfunction myApiMethod( string cacheAs = "default" ) cachedWithin=createTimeSpan(0,1,0,0) {
return whatever;
}
then when you're calling it you pass in the 'name' as the cacheAs value:
blah = myApiMethod();
blech = myApiMethod( cacheAs="user_#userid#_api_results" );
ahem = myApiMethod( cacheAs="account_#accountid#_api_results" );
blooie = myApiMethod( cacheAs="user_#userid#_api_results" ); <--- will return the cached copy from above within an hour
websolete
09/09/2022, 8:19 PMryan
09/09/2022, 8:22 PMMatt Jones
09/09/2022, 8:34 PMryan
09/09/2022, 8:38 PMMatt Jones
09/09/2022, 9:08 PMryan
09/09/2022, 9:35 PM