ContainsKey() публичный Метод

public ContainsKey ( string key ) : bool
key string
Результат bool
Пример #1
0
 public object Any(ContainsKey request)
 {
     return(new ContainsKeyResponse
     {
         Result = Redis.ContainsKey(request.Key)
     });
 }
Пример #2
0
 public void Can_Set_Expire_MilliSeconds()
 {
     Redis.SetEntry("key", "val", expireIn: TimeSpan.FromMilliseconds(1000));
     Assert.That(Redis.ContainsKey("key"), Is.True);
     Thread.Sleep(2000);
     Assert.That(Redis.ContainsKey("key"), Is.False);
 }
Пример #3
0
 public void Can_Expire()
 {
     Redis.SetEntry("key", "val");
     Redis.Expire("key", 1);
     Assert.That(Redis.ContainsKey("key"), Is.True);
     Thread.Sleep(2000);
     Assert.That(Redis.ContainsKey("key"), Is.False);
 }
Пример #4
0
        public void Can_RenameKey()
        {
            Redis.SetEntry("oldkey", "val");
            Redis.Rename("oldkey", "newkey");

            Assert.That(Redis.ContainsKey("oldkey"), Is.False);
            Assert.That(Redis.ContainsKey("newkey"), Is.True);
        }
Пример #5
0
 public void Can_Expire_Ms()
 {
     Redis.SetEntry("key", "val");
     Redis.ExpireEntryIn("key", TimeSpan.FromMilliseconds(100));
     Assert.That(Redis.ContainsKey("key"), Is.True);
     Thread.Sleep(500);
     Assert.That(Redis.ContainsKey("key"), Is.False);
 }
Пример #6
0
        public void Can_Set_Expire_Seconds_if_not_exists()
        {
            Redis.SetEntryIfNotExists("key", "val", expireIn: TimeSpan.FromMilliseconds(1000));
            Assert.That(Redis.ContainsKey("key"), Is.True);

            Thread.Sleep(2000);
            Assert.That(Redis.ContainsKey("key"), Is.False);

            Redis.Remove("key");
            Redis.SetEntryIfNotExists("key", "val", expireIn: TimeSpan.FromMilliseconds(1000));
            Assert.That(Redis.ContainsKey("key"), Is.True);
        }
Пример #7
0
        public void Can_ExpireAt()
        {
            Redis.SetEntry("key", "val");

            var unixNow = DateTime.Now.ToUnixTime();
            var in1Sec  = unixNow + 1;

            Redis.ExpireAt("key", in1Sec);

            Assert.That(Redis.ContainsKey("key"), Is.True);
            Thread.Sleep(2000);
            Assert.That(Redis.ContainsKey("key"), Is.False);
        }
Пример #8
0
        public void Can_ExpireAt()
        {
            Redis.SetValue("key", "val");

            var unixNow = DateTime.Now.ToUnixTime();
            var in2Secs = unixNow + 2;

            Redis.ExpireAt("key", in2Secs);

            Assert.That(Redis.ContainsKey("key"), Is.True);
            Thread.Sleep(3000);
            Assert.That(Redis.ContainsKey("key"), Is.False);
        }
Пример #9
0
        public void Can_Set_Expire_Seconds_if_exists()
        {
            Assert.That(Redis.SetValueIfExists("key", "val", expireIn: TimeSpan.FromMilliseconds(1500)),
                        Is.False);
            Assert.That(Redis.ContainsKey("key"), Is.False);

            Redis.SetValue("key", "val");
            Assert.That(Redis.SetValueIfExists("key", "val", expireIn: TimeSpan.FromMilliseconds(1000)),
                        Is.True);
            Assert.That(Redis.ContainsKey("key"), Is.True);

            Thread.Sleep(2000);
            Assert.That(Redis.ContainsKey("key"), Is.False);
        }
Пример #10
0
        public void Can_delete_keys()
        {
            Redis.SetEntry("key", "val");

            Assert.That(Redis.ContainsKey("key"), Is.True);

            Redis.Del("key");

            Assert.That(Redis.ContainsKey("key"), Is.False);

            var keysMap = new Dictionary <string, string>();

            10.Times(i => keysMap.Add("key" + i, "val" + i));

            Redis.SetAll(keysMap);

            10.Times(i => Assert.That(Redis.ContainsKey("key" + i), Is.True));

            Redis.Del(keysMap.Keys.ToList <string>().ToArray());

            10.Times(i => Assert.That(Redis.ContainsKey("key" + i), Is.False));
        }
Пример #11
0
 /// <summary>
 /// 获取一个值,该值指示是否缓存与指定键关联的值
 /// </summary>
 /// <param name="key">键名</param>
 /// <returns></returns>
 public virtual bool IsSet(string key)
 {
     return(Redis.ContainsKey(key));
 }
Пример #12
0
        public async Task <string> Start(List <string> param)
        {
            //    string SqlLiteConn = RuntimeInformation.IsOSPlatform(OSPlatform.Linux) ? "Data Source=Db/LogData.dll;" : "Data Source=Db\\LogData.dll;";
            //    using (var logW = new FreeSqlBuilder()
            //.UseConnectionFactory(FreeSql.DataType.Sqlite, () => new System.Data.SQLite.SQLiteConnection(SqlLiteConn))
            // .UseAutoSyncStructure(false)
            // .Build())
            //    {
            //        var logs = new List<Logs>();
            //        for (int i = 0; i < 100000; i++)
            //        {
            //            logs.Add(new Logs
            //            {
            //                Application = "test",
            //                EventId = "test",
            //                Level = "test",
            //                Logger = "freesqlLogger",
            //                Message = i.ToString() + "当前线程id" + Thread.CurrentThread.ManagedThreadId,
            //                TimestampUtc = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")

            //            });
            //        }
            //        _ = logW.Insert(logs).NoneParameter(true).ExecuteAffrows();
            //        logs = null;
            //    }
            //    return "";
            //  await LogDela();
            //return await Task.FromResult($"开启失败,失败原因");
            try
            {
                int Second = 0;
                if (param.Count > 1 && _scheduler != null)
                {
                    await Stop();
                }
                for (int i = 0; i < param.Count; i++)
                {
                    //计算出事件的秒数
                    var ts = await _sqliteFSql.Select <TaskPlan>().Where(o => o.GUID == param[i]).FirstAsync();

                    switch (ts.FrequencyType)
                    {
                    case "0":
                        Second = int.Parse(ts.Frequency);
                        break;

                    case "1":
                        Second = int.Parse(ts.Frequency) * 60;
                        break;

                    case "2":
                        Second = int.Parse(ts.Frequency) * 3600;
                        break;

                    default:
                        break;
                    }


                    //2、通过调度工厂获得调度器
                    _scheduler = await _schedulerFactory.GetScheduler();

                    _scheduler.JobFactory = this._iocJobfactory;
                    //  替换默认工厂
                    //3、开启调度器
                    _logger.LogInformation("定时任务({EventId})启动", ts.Name);

                    await _scheduler.Start();

                    //4、创建一个触发器
                    var trigger = TriggerBuilder.Create()
                                  .WithSimpleSchedule(x => x.WithIntervalInSeconds(Second).RepeatForever())
                                  .Build();
                    IJobDetail jobDetail;
                    //5、创建任务 0是dll 模式 1是api模式
                    if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
                    {
                        if (rds.ContainsKey(param[i].ToString()))
                        {
                            return(await Task.FromResult($"已经开启过任务{ts.Name}不允许重复开启!"));
                        }


                        if (ts.WorkType == "0")
                        {
                            jobDetail = JobBuilder.Create <AutoTaskJobDll>()
                                        .WithIdentity(param[i].ToString(), "group")
                                        .UsingJobData("guid", param[i].ToString())
                                        .Build();
                        }
                        else
                        {
                            jobDetail = JobBuilder.Create <AutoTaskJob>()
                                        .WithIdentity(param[i].ToString(), "group")
                                        .UsingJobData("guid", param[i].ToString())
                                        .Build();
                        }

                        rds.Set(param[i].ToString(), jobDetail.Key);
                    }
                    else
                    {
                        if (ts.Status == "1" || jobKeys.ContainsKey(param[i].ToString()))
                        {
                            return(await Task.FromResult($"已经开启过任务{ts.Name}不允许重复开启!"));
                        }
                        else
                        {
                            if (ts.WorkType == "0")
                            {
                                jobDetail = JobBuilder.Create <AutoTaskJobDll>()
                                            .WithIdentity(param[i].ToString(), "group")
                                            .UsingJobData("guid", param[i].ToString())
                                            .Build();
                            }
                            else
                            {
                                jobDetail = JobBuilder.Create <AutoTaskJob>()
                                            .WithIdentity(param[i].ToString(), "group")
                                            .UsingJobData("guid", param[i].ToString())
                                            .Build();
                            }

                            ts.Status = "1";

                            _sqliteFSql.Update <TaskPlan>()
                            .Set(a => a.Status, ts.Status)
                            .Where(a => a.GUID == ts.GUID)
                            .ExecuteAffrows();
                            jobKeys.Add(param[i].ToString(), jobDetail.Key);
                        }
                    }
                    //6、将触发器和任务器绑定到调度器中

                    await _scheduler.ScheduleJob(jobDetail, trigger);
                }
                // return await Task.FromResult("0");
                return("0");
            }
            catch (Exception ex)
            {
                _logger.LogError($"开启失败,失败原因:{ex.Message}");
                //return await Task.FromResult($"开启失败,失败原因:{ex.Message}");
                return($"开启失败,失败原因:{ex.Message}");
            }
        }