RepositorieOracle.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using Dapper;
  2. using Newtonsoft.Json.Linq;
  3. using Oracle.ManagedDataAccess.Client;
  4. using Quartz.Impl.AdoJobStore.Common;
  5. using System;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace Host.Repositories
  9. {
  10. public class RepositorieOracle : IRepositorie
  11. {
  12. private IDbProvider DBProvider { get; }
  13. public RepositorieOracle(IDbProvider dbProvider)
  14. {
  15. DBProvider = dbProvider;
  16. }
  17. public async Task<bool> RemoveErrLogAsync(string jobGroup, string jobName)
  18. {
  19. try
  20. {
  21. using (var connection = new OracleConnection(DBProvider.ConnectionString))
  22. {
  23. string sql = $@"SELECT
  24. JOB_DATA
  25. FROM
  26. QRTZ_JOB_DETAILS
  27. WHERE
  28. JOB_NAME = :jobName
  29. AND JOB_GROUP = :jobGroup";
  30. var byteArray = await connection.ExecuteScalarAsync<byte[]>(sql, new { jobName, jobGroup });
  31. var jsonStr = Encoding.UTF8.GetString(byteArray);
  32. JObject source = JObject.Parse(jsonStr);
  33. source.Remove("Exception");//移除异常日志
  34. var modifySql = $@"UPDATE QRTZ_JOB_DETAILS
  35. SET JOB_DATA = :jobData
  36. WHERE
  37. JOB_NAME = :jobName
  38. AND JOB_GROUP = :jobGroup";
  39. await connection.ExecuteAsync(modifySql, new { jobName, jobGroup, jobData = Encoding.UTF8.GetBytes(source.ToString()) });
  40. }
  41. return true;
  42. }
  43. catch (Exception ex)
  44. {
  45. return false;
  46. }
  47. }
  48. public Task<int> InitTable()
  49. {
  50. //TODO 待实现...
  51. return Task.FromResult(-1);
  52. }
  53. }
  54. }