diff --git a/config/dev.edn b/config/dev.edn index 55ec6f71..97567b09 100644 --- a/config/dev.edn +++ b/config/dev.edn @@ -6,7 +6,9 @@ :aws-region "us-east-1" :datomic-url "datomic:sql://invoices?jdbc:postgresql://database:5432/datomic?user=datomic&password=datomic" :invoice-import-queue-url "https://sqs.us-east-1.amazonaws.com/679918342773/integreat-mail-staging" + :background-task-definition "integreat_background-worker_prod" :requests-queue-url "https://sqs.us-east-1.amazonaws.com/679918342773/integreat-background-request-prod" + :scheduled-jobs-queue-url "https://sqs.us-east-1.amazonaws.com/679918342773/integreat-scheduled-jobs-prod" :invoice-email "invoices-staging@mail.app.integreatconsult.com" :import-failure-destination-email "bryce@brycecovertoperations.com" :data-bucket "data.staging.app.integreatconsult.com" diff --git a/project.clj b/project.clj index c41b2a67..89c5cf4e 100644 --- a/project.clj +++ b/project.clj @@ -73,6 +73,10 @@ [com.amazonaws/aws-java-sdk-sqs "1.11.926" :exclusions [commons-codec org.apache.httpcomponents/httpclient]] + + [com.amazonaws/aws-java-sdk-ecs "1.11.926" + :exclusions [commons-codec + org.apache.httpcomponents/httpclient]] [com.amazonaws/aws-java-sdk-ses "1.11.926" :exclusions [commons-codec org.apache.httpcomponents/httpclient]] diff --git a/src/clj/auto_ap/server.clj b/src/clj/auto_ap/server.clj index d7d2a7e3..c671fcd2 100644 --- a/src/clj/auto_ap/server.clj +++ b/src/clj/auto_ap/server.clj @@ -91,6 +91,14 @@ (cond (= job "square-import-job") (job-square/-main) + (= job "hello-world") + (do + (log/info "HELLO WORLD") + (Thread/sleep 10000) + (log/info "GOODBYE WORLD") + (Thread/sleep 10000) + (System/exit 0)) + :else (let [without (cond-> [] (not (env :run-web? )) (into [#'jetty diff --git a/terraform/deploy.tf b/terraform/deploy.tf index e99dc795..adb17733 100644 --- a/terraform/deploy.tf +++ b/terraform/deploy.tf @@ -37,17 +37,6 @@ resource "aws_ecs_task_definition" "integreat_background_worker" { task_role_arn = var.task_role_arn } -resource "aws_ecs_task_definition" "square_import_job" { - - family = "square_import_job_${var.stage}" - container_definitions = file("${var.stage}-square-import-job-taskdef.json") - memory = 8192 - cpu = 2048 - network_mode = "awsvpc" - requires_compatibilities = ["FARGATE"] - execution_role_arn = var.execution_role_arn - task_role_arn = var.task_role_arn -} resource "aws_ecs_service" "integreat_app" { name = "integreat_app_${var.stage}" @@ -334,3 +323,38 @@ resource "aws_service_discovery_service" "background_worker_service" { failure_threshold = 1 } } + +resource "aws_cloudwatch_event_rule" "square_import_job_schedule" { + name = "square-import-job-schedule" + schedule_expression = "rate(4 hours)" +} + + +resource "aws_cloudwatch_event_target" "square_import_job_target" { + target_id = "square-import-job" + arn = var.ecs_cluster + rule = aws_cloudwatch_event_rule.square_import_job_schedule.name + role_arn = var.execution_role_arn + + ecs_target { + task_count = 1 + task_definition_arn = aws_ecs_task_definition.integreat_background_worker.arn + network_configuration { + assign_public_ip = true + security_groups = [ "sg-004e5855310c453a3", "sg-02d167406b1082698"] + subnets = [ "subnet-5e675761", "subnet-8519fde2", "subnet-89bab8d4" ] + } + } + + input = <