为什么会提交重复的 AWS 作业

问题描述 投票:0回答:1

每次文件上传到存储桶时,我的 S3 存储桶都会向 SQS 发送事件。 SQS 触发 lambda 函数,将作业提交到 AWS 作业队列。 每周,我的应用程序都会将超过 100K 个文件上传到 S3 存储桶。我预计每个上传的文件在 AWS 批处理队列中只有一个作业。但是我发现 Lambda 调用以及 Lambda 函数内的 SubmitJob api 调用受到限制。 我已将 Lambda 的并发数设置为 40。 我真正的问题是间歇性地为上传的文件提交超过 1 个作业。我无法弄清楚是什么导致 AWS 批处理队列中同一文件出现重复作业。

amazon-web-services amazon-s3 aws-lambda amazon-sqs aws-batch
1个回答
0
投票
import { useState } from "react";
import { Link } from "react-router-dom";
import axios from "axios";
import { useNavigate } from "react-router-dom";

const Login = () => {
  const [name, setName] = useState("");
  const [password, setPassword] = useState("");
  const [message, setMessage] = useState("");

  const navigate = useNavigate();

  const validation = () => {
    if (!name) {
      setMessage("Name is required");
      return false;
    }

    if (!password) {
      setMessage("Password is required");
      return false;
    } else if (password.length < 6) {
      setMessage("Password must be at least 6 characters");
      return false;
    }

    setMessage("");
    return true;
  };

  const handleSubmit = (e) => {
    e.preventDefault();
    if (validation()) {
      axios
        .get("https://66e7e6bbb17821a9d9da704c.mockapi.io/home")
        .then((response) => {
          if (response.data.length > 0) {
            const foundUser = response.data.find(
              (users) => users.name === name && users.password === password
            );
            if (foundUser) {
              navigate("/Home");
            } else {
              setMessage("Invalid credentials");
            }
          }
        })
        .catch((error) => {
          console.error("Error logging in:", error);
          setMessage("There was a problem logging in. Please try again.");
        });
    }
  };

  return (
    <section>
      <div className="flex flex-col items-center justify-center py-8">
        <div className="w-full bg-white rounded-lg shadow p-6 max-w-md">
          <h1 className="text-xl font-bold mb-6">Sign in to your account</h1>
          <form onSubmit={handleSubmit}>
            <div className="mb-4">
              <label className="block mb-2 text-sm font-medium">Your Name</label>
              <input
                type="text"
                value={name}
                onChange={(e) => setName(e.target.value)}
                className="w-full p-2 border rounded"
                required
              />
            </div>
            <div className="mb-4">
              <label className="block mb-2 text-sm font-medium">Password</label>
              <input
                type="password"
                value={password}
                onChange={(e) => setPassword(e.target.value)}
                className="w-full p-2 border rounded"
                required
              />
            </div>
            {message && (
              <div className="text-red-500 mb-4">
                <span>{message}</span>
              </div>
            )}
            <button
              type="submit"
              className="w-full p-2 bg-gray-800 text-white rounded"
            >
              Sign in
            </button>
            <p className="mt-4 text-sm">
              Don’t have an account yet?{" "}
              <Link to="/" className="text-blue-600">
                Sign up
              </Link>
            </p>
          </form>
        </div>
      </div>
    </section>
  );
};

export default Login;
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.