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